home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1986-12-15 | 56.5 KB | 1,598 lines
1 REM $linesize: 132 10000 ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINES 10000-10230 10010 ' CONFIG.BAS (RBBS-PC ver. CPC12.3) 10020 REM $LINESIZE: 132 10030 'by D. Thomas Mack 10040 ' The Second Ring 10050 ' 10210 Oxfordshire Road 10060 ' Great Falls, Virginia 22066 10070 ' 10080 ' *******************************NOTICE************************************* 10090 ' * A limited license is granted to all users of this program and it's * 10100 ' * companion program, RBBS-PC (ver. CPC12.3), to make copies of this * 10110 ' * program and distribute the copies to other users, on the following * 10120 ' * conditions: * 10130 ' * 1. The notices contained in lines 25 through 44 of the programs * 10140 ' * are not altered, bypassed, or removed. * 10150 ' * 2. The program is not to be disrtibuted to others in modified * 10160 ' * form (i.e. the line numbers must remain the same). * 10170 ' * 3. No fee is to be charged (or any other consideration received) * 10180 ' * for coping or distributing these programs without an express * 10190 ' * written agreement with D. Thomas Mack, The Second Ring, 10210 * 10200 ' * Oxfordshire Road, Great falls, Virginia 22006 * 10210 ' * * 10220 ' * Copyright (c) 1983, 1984 D. Thomas Mack, The Second Ring * 10230 ' ************************************************************************* 10240 DEFINT A-Z:CLEAR:DIM A$(5),SA(8),MD(20),FS(8),UA(12),HELP$(8) 10250 WIDTH 80:CLS:I!=FRE(C$):KEY OFF:LOCATE ,,0 10260 PRINT TAB(60)"tm":PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205) 10270 PRINT:PRINT TAB(17)"Capital PC User Group User-Supported Software":PRINT:PRINT TAB(7) CHR$(214)STRING$(62,196)CHR$(183) 10280 FOR I=1 TO 12:READ A$:PRINT TAB(7) CHR$(186);A$;SPACE$(62-LEN(A$));CHR$(186):NEXT 10290 PRINT TAB(7) CHR$(211)STRING$(62,196)CHR$(189):PRINT TAB(27)"Copyright (c) 1983, 1984 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA 22066" 10300 DATA" If you are using RBBS-PC CPC12.3 and find it of value, I 10310 DATA" would like to suggest you consider a contribution to 10320 DATA" 10330 DATA" Capital PC Software Exchange 10340 DATA" Post Office Box 6128 10350 DATA" Silver Spring, Maryland 20906 10360 DATA" 10370 DATA" Feel free to copy and share RBBS-PC CPC12.3 with other 10380 DATA" users on these three conditions: 10390 DATA" 1. RBBS-PC CPC12.3 is not distributed in modified form. 10400 DATA" 2. No fee or consideration is charged. 10410 DATA" 3. This notice is not bypassed or removed. 10420 DEF FNTI!=CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60)+(VAL(MID$(TIME$,4,2))*60)+(VAL(MID$(TIME$,7,2))*1))) ' CPC10 10430 CONFIG$="RBBS-PC.DEF" 10440 FGR=7 10450 BGR=0 10460 BDR=0 10470 IWAIT!=FNTI!+5 10480 IF FNTI!<IWAIT! THEN LOCATE 22,15:GOTO 10480 10490 LOCATE 22,15:PRINT SPC(64):LOCATE 22,15:PRINT"Will you be running multiple copies of RBBS-PC (YES or NO)?"; 10500 GOSUB 22380:ON ANSW GOTO 10530,10510,10490,10490 10510 GOSUB 22480 10520 ' ************************************************************************* 10530 ON ERROR GOTO 60010 10540 FALSE=0 10545 ICHANGE=0 10550 TRUE=NOT FALSE 10560 MAXPAGE=8 10570 MAXRBBS=1 10580 ENVIR$="IBM's DOS" 10590 RECYCLE$="INTERNAL" 10600 USERMAX=10 10610 MESSAGES$="A:MESSAGES" 10630 CALLERS$="A:CALLERS" 10640 COMMENTS$="A:COMMENTS" 10650 USERS$="A:USERS" 10660 C$="" 10665 M$="M" 10670 HELP$="HELP0" 10680 HELP$(1)="HELP01" 10690 HELP$(2)="HELP02" 10700 HELP$(3)="HELP03" 10710 HELP$(4)="HELP04" 10720 HELP$(5)="HELP05" 10730 HELP$(6)="HELP06" 10740 HELP$(7)="HELP07" 10750 HELP$(8)="HELP08" 10760 BULLETIN$="BULLET" 10770 BULLET1$="BULLET" 10780 WELCOME$="A:WELCOME" 10790 NEWUSER$="A:NEWUSER" 10800 MENU1$="A:MENU1" 10810 MENU2$="A:MENU2" 10820 MENU3$="A:MENU3" 10830 MENU4$="A:MENU4" 10840 MENU5$="A:MENU5" 10850 CONF$="A:CONFENCE" 10860 BADNAME$="A:TRASHCAN" 10870 VIEWSEC=0 10880 OPTWEL=TRUE 10890 UPLDDLD=FALSE 10900 PL=23 10910 LW=80 10920 WINDW=FALSE 10930 DIR$="DIR" 10940 TDEV$="A" 10950 BTDEV$=TDEV$ 10960 HTDEV$=TDEV$ 10970 DOSVER%=2 10980 NFIR$="TOM" 10990 NLAS$="MACK" 11000 PASS1$="RBBS-PC" 11010 PASS2$="CPC12" 11020 XPR=0 11025 VER$="(Version 1.3)" 11030 CBACK=0 11040 MINSEC=0 11045 VIEWSEC=MINSEC 11050 DFSEC=5 11060 SYSSEC=10 11065 PACKSEC=SYSSEC 11070 FILE.SEC$=TDEV$+":"+"FILESEC" 11080 SEESYS=10 11090 SEEDOORS=10 11100 SHRD=0 11110 CYCLE=0 11120 KEYPW$=PASS1$ 11130 NVIO=5 11140 SSEC=10:FOR I=1 TO 8:SA(I)=SSEC:NEXT 11150 MMSEC=5:FOR I=1 TO 20:MD(I)=MMSEC:NEXT 11160 FILSEC=5:FOR I=1 TO 8:FS(I)=FILSEC:NEXT 11170 UTLSEC=5:FOR I=1 TO 12:UA(I)=UTLSEC:NEXT 11180 PASWRD$=TDEV$+":"+"PASSWRDS" 11190 CHMAX=3 11200 CHSEC=5 11210 WOVR=SYSSEC 11220 MTERM=5 11230 FDEV$="ABB" 11240 MDEV$="A" 11250 UDIR$="DIR99" 11260 RBBS$="A:RBBS.BAT" 11270 CTTY$="A:RCTTY.BAT" 11280 OMIT.DIR$="NO" 11290 OMIT.UDIR$="NO" 11300 BELL=0 11310 PRT=TRUE 11320 TIME.MAX!=72 11330 MESSAGE.MAX=250 11350 LAPSE.MAX=1 11360 ANNOY.ON=800 11370 ANNOY.OFF=2200 11380 COMPILED=FALSE 11390 OPTBUL=TRUE 11400 SPEAKER=0 11410 M13$="COM1" 11420 REMIND=TRUE 11430 BTOK=TRUE 11440 M26=FALSE 11450 BULL=6 11455 ISWP=0 11460 COMPAQ=0 11470 SM1$="<ESC> sysop sign-on maintenance/page." 11480 SM2$=" <F1> return to DOS." 11490 SM3$=" <F2> return to BASIC." 11500 SM4$=" <F3> toggle Line Printer." 11510 SM5$=" <F4> toggle SYSOP Page Bell." 11520 SM6$=" <F5> force on-line state." 11530 SM7$=" <F6> toggle SYSOP available." 11540 SM8$=" <F7> SYSOP gets system after this caller." 11550 SM9$=" <F8> grant temporary SYSOP privileges." 11560 SM10$=" <F9> toggle SNOOP." 11570 SM11$="<F10> force CHAT - ESC to end." 11580 ' RBBS-PC Configuration Program for Compilable RBBS-PC 11590 OPEN "I",#1,CONFIG$ 11600 INPUT #1,FDEV$,PASS1$,PASS2$,NFIR$,NLAS$,CBACK,ANNOY.ON,ANNOY.OFF,TIME.MAX!,MESSAGE.MAX,LAPSE.MAX,UDIR$,XPR,BULL,BELL,PRT,COMPILED,MENU1$,MENU2$,MENU3$,MENU4$,MENU5$,CONF$,VIEWSEC,OPTWEL,UPLDDLD,PL,LW,WINDW,MDEV$ 11610 GOSUB 22340 11620 INPUT #1,MESSAGES$,MESSAGES.BAK$,CALLERS$,COMMENTS$,USERS$,WELCOME$,NEWUSER$,DIR$,M13$,OPTBUL,SPEAKER,TDEV$,DOSVER%,FGR,BGR,BDR,RBBS$,CTTY$,OMIT.DIR$,OMIT.UDIR$ 11630 GOSUB 22340 11640 INPUT #1,HELP$(1),HELP$(2),HELP$(3),HELP$(4),HELP$(5),HELP$(6),HELP$(7),HELP$(8),BULLETIN$,BULLET1$,BTDEV$,REMIND,BTOK,SEEDOORS,MAXRBBS,SHRD,CYCLE,USERMAX,MSGMAX!,BADNAME$ 11650 GOSUB 22340 11660 INPUT #1,MINSEC,DFSEC,SYSSEC,FILE.SEC$,SEESYS,KEYPW$,NVIO,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),SA(8),PASWRD$,CHMAX,CHSEC,WOVR,MTERM,M26 11670 GOSUB 22340 11680 INPUT #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8) 11690 GOSUB 22340 11700 INPUT #1,UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),COMPAQ 11705 INPUT #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SM10$,SM11$,PACKSEC 11710 GOSUB 22340 11720 BULLETIN$=RIGHT$(BULLETIN$,(LEN(BULLETIN$)-2)) 11730 BULLET1$=RIGHT$(BULLET1$,(LEN(BULLET1$)-2)) 11740 IF CYCLE=0 THEN RECYCLE$="INTERNAL" ELSE RECYCLE$="SYSTEM" 11750 HTDEV$=LEFT$(HELP$(1),1) 11760 HELP$(1)=RIGHT$(HELP$(1),(LEN(HELP$(1))-2)) 11770 HELP$=LEFT$(HELP$(1),LEN(HELP$(1))-1) 11780 SSEC=SA(1):FOR I=2 TO 8:IF SA(I)>SSEC THEN GOTO 11790 ELSE SSEC=SA(I) 11790 NEXT 11800 MMSEC=MD(1):FOR I=2 TO 20:IF MD(I)>MMSEC THEN GOTO 11810 ELSE MMSEC=MD(I) 11810 NEXT 11820 FILSEC=FS(1):FOR I=2 TO 8:IF FS(I)>FILSEC THEN GOTO 11830 ELSE FILSEC=FS(I) 11830 NEXT 11840 UTLSEC=UA(1):FOR I=2 TO 12:IF UA(I)>UTLSEC THEN GOTO 11850 ELSE UTLSEC=UA(I) 11850 NEXT 11860 CLOSE #1 11862 GOSUB 50480 11864 GOSUB 50530 11870 IF XPR=0 THEN M5$="NOVICE" 11880 IF XPR=-1 THEN M5$="EXPERT" 11890 M6$=RIGHT$(FDEV$,1) 11900 M7$=LEFT$(FDEV$,(LEN(FDEV$)-1)) 11910 IF BELL=0 THEN M10$="OFF" 11920 IF BELL=-1 THEN M10$="ON" 11930 IF PRT=TRUE THEN M11$="YES" 11940 IF PRT=FALSE THEN M11$="NO" 11950 IF COMPILED=TRUE THEN M12$="COMPILED" 11960 IF COMPILED=FALSE THEN M12$="BASICA" 11970 IF OPTBUL=TRUE THEN M15$="YES" 11980 IF OPTBUL=FALSE THEN M15$="NO" 11990 IF SPEAKER=0 THEN M14$="OFF" 12000 IF SPEAKER=-1 THEN M14$="ON" 12010 IF REMIND=TRUE THEN M16$="YES" 12020 IF REMIND=FALSE THEN M16$="NO" 12030 IF BTOK=TRUE THEN M17$="YES" 12040 IF BTOK=FALSE THEN M17$="NO" 12050 IF OPTWEL=FALSE THEN M18$="NO" 12060 IF OPTWEL=TRUE THEN M18$="YES" 12070 IF UPLDDLD=TRUE THEN M19$="YES" 12080 IF UPLDDLD=FALSE THEN M19$="NO" 12090 IF WINDW=TRUE THEN M21$="YES" 12100 IF WINDW=FALSE THEN M21$="NO" 12110 IF PASS1$="" THEN MN1$="(Disabled)" ELSE MN1$=PASS1$ 12120 IF PASS2$="" THEN MN2$="(Disabled)" ELSE MN2$=PASS2$ 12130 IF M26=TRUE THEN M26$="YES" 12140 IF M26=FALSE THEN M26$="NO" 12150 Y$="" 12160 KEY OFF 12170 GOSUB 22760 12180 FOR I=1 TO 10:KEY I,"":NEXT 12190 COLOR FGR,BGR,BDR:CLS:I!=FRE(C$) 12200 COLOR 0,7,0:LOCATE 4,15:PRINT"RBBS-PC CPC12.3 CONFIGURATION PROGRAM "+VER$:COLOR FGR,BGR,BDR:PRINT 12210 LOCATE 1,17,0:PRINT"Copyright (c) 1983, 1984 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA 22066" 12220 LOCATE 7,2:PRINT" F1 Global RBBS-PC Parameters (part 1)" 12230 LOCATE 9,2:PRINT" F2 Global RBBS-PC Parameters (part 2)" 12240 LOCATE 11,2:PRINT" F3 Parameters for static RBBS-PC Files" 12250 LOCATE 13,2:PRINT" F4 Parameters for dynamic RBBS-PC's Files" 12260 LOCATE 15,2:PRINT" F5 Parameters for RBBS-PC's 'Doors'" 12270 LOCATE 17,2:PRINT" F6 Parameters for RBBS-PC's Security" 12280 LOCATE 19,2:PRINT" F7 Parameters for multiple RBBS-PC's" 12290 LOCATE 21,2:PRINT" F8 RBBS-PC utilities" 12300 LOCATE 24,5:PRINT"Press END to terminate or select function key to change parameters shown."; 12310 GOSUB 22160 12320 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12350,12360,12350 12330 GOTO 12310 12340 GOSUB 22540:GOTO 12310 12350 GOSUB 60380:GOTO 12310 12360 CURPAGE=1 12370 GOSUB 24800 12380 LOCATE 3,10:PRINT" 1. SYSOP's First Name --------------------------- "+NFIR$ 12390 LOCATE 4,10:PRINT" 2. SYSOP's Last Name ---------------------------- "+NLAS$ 12400 LOCATE 5,10:PRINT" 3. Password #1 for SYSOP to sign on remotely ---- "+MN1$ 12410 LOCATE 6,10:PRINT" 4. Password #2 for SYSOP to sign on remotely----- "+MN2$ 12420 LOCATE 7,10:PRINT" 5. Password for SYSOP to sign on locally -------- "+KEYPW$ 12430 LOCATE 8,10:PRINT" 6. SYSOP's default sign-on mode ----------------- "+M5$ 12440 LOCATE 9,10:PRINT" 7. SYSOP's office hours ------------------------ "STR$(ANNOY.ON);" to "STR$(ANNOY.OFF) 12450 LOCATE 10,10:PRINT" 8. Ring-back count set at -----------------------"STR$(CBACK) 12460 LOCATE 11,10:PRINT" 9. Drive available for Uploading ---------------- "+M6$ 12470 LOCATE 12,10:PRINT"10. Name of directory for uploading -------------- "+UDIR$ 12480 LOCATE 13,10:PRINT"11. Drive(s) available for Downloading ----------- "+M7$ 12490 LOCATE 14,10:PRINT"12. Prompt bell default is ----------------------- "+M10$ 12500 LOCATE 15,10:PRINT"13. Maximum time per session (in minutes) --------"STR$(TIME.MAX!) 12510 LOCATE 16,10:AA$=STRING$((14-LEN(STR$(TIME.MAX!))),45):PRINT"14. Limit each user to"+STR$(TIME.MAX!)+" minutes/day? "+AA$+" "+M26$ 12530 LOCATE 17,10:PRINT"15. # Months of inactivty before user deleted ----"STR$(LAPSE.MAX) 12540 LOCATE 18,10:PRINT"16. Display user sessions on screen (SNOOP) ------ "+M11$ 12560 LOCATE 19,10:PRINT"17. Communications port to be used by RBBS-PC ---- "+M13$ 12570 LOCATE 20,10:PRINT"18. Version of DOS that RBBS-PC will run under ---"STR$(DOSVER%) 12580 GOSUB 24890 12590 GOSUB 22160 12600 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12190,14200,12620 12610 GOTO 12590 12620 GOSUB 50340 12630 IF HJ$="1"THEN GOTO 12840 12640 IF HJ$="2" THEN GOTO 12910 12650 IF HJ$="3" THEN GOTO 12980 12660 IF HJ$="4" THEN GOTO 13060 12670 IF HJ$="5" THEN LOCATE 24,5:PRINT SPC(74):LOCATE 24,5:PRINT"Enter password (8 characters or less)";:GOSUB 14990: IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN HJ$="5":GOTO 12670 ELSE KEYPW$=HJ$:GOTO 12360 12680 IF HJ$="6" THEN GOTO 13140 12690 IF HJ$="7" THEN GOTO 13210 12700 IF HJ$="8" THEN GOTO 13350 12710 IF HJ$="9" THEN GOTO 13400 12720 IF HJ$="11" THEN GOTO 13470 12730 IF HJ$="10" THEN GOTO 13590 12740 IF HJ$="12" THEN GOTO 13750 12750 IF HJ$="13" THEN GOTO 13840 12760 IF HJ$="14" THEN GOTO 16650 12780 IF HJ$="15" THEN GOTO 13940 12790 IF HJ$="16" THEN GOTO 13990 12810 IF HJ$="17" THEN GOTO 14120 12820 IF HJ$="18" THEN GOTO 15240 12830 GOTO 12580 12840 LOCATE 24,5:PRINT"What is the SYSOP's FIRST name? "; 12850 LINE INPUT;HJ$ 12860 IF HJ$="" THEN GOTO 12840 12870 IF LEN(HJ$)<3 GOTO 12840 12880 GOSUB 60390 12890 NFIR$=HJ$ 12900 GOTO 12360 12910 LOCATE 24,5:PRINT"What is the SYSOP's LAST name? "; 12920 LINE INPUT;HJ$ 12930 IF HJ$="" THEN GOTO 12910 12940 IF LEN(HJ$)<3 GOTO 12910 12950 GOSUB 60390 12960 NLAS$=HJ$ 12970 GOTO 12360 12980 LOCATE 24,5:PRINT"What is the SYSOP's Password #1? "; 12990 LINE INPUT;HJ$ 13020 GOSUB 60390 13030 PASS1$=HJ$ 13040 IF PASS1$="" THEN MN1$="(Disabled)" ELSE MN1$=PASS1$ 13050 GOTO 12360 13060 LOCATE 24,5:PRINT"What is the SYSOP's Password #2? "; 13070 LINE INPUT;HJ$ 13100 GOSUB 60390 13110 PASS2$=HJ$ 13120 IF PASS2$="" THEN MN2$="(Disabled)" ELSE MN2$=PASS2$ 13130 GOTO 12360 13140 LOCATE 24,5:PRINT"SYSOP's default sign-on mode (EXPERT/NOVICE)? "; 13150 LINE INPUT;HJ$ 13160 IF LEN(HJ$)=6 OR LEN(HJ$)=1 THEN GOTO 13170 ELSE GOTO 13140 13170 GOSUB 60390 13180 IF HJ$="E" OR HJ$="EXPERT" THEN M5$="EXPERT":GOTO 12360 13190 IF HJ$="N" OR HJ$="NOVICE" THEN M5$="NOVICE":GOTO 12360 13200 GOTO 13140 13210 LOCATE 24,5:PRINT"What is the earliest SYSOP wants to be paged? -- HHMM "; 13220 LINE INPUT;HJ$ 13230 IF LEN(HJ$)<>4 GOTO 13210 13240 IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13210 13250 ANNOY.ON=VAL(HJ$) 13260 IF ANNOY.ON<0 OR ANNOY.ON>2400 THEN GOTO 13210 13270 LOCATE 25,5:PRINT"What is the latest SYSOP wants to be paged? ---- HHMM "; 13280 LINE INPUT;HJ$ 13290 IF LEN(HJ$)<>4 GOTO 13270 13300 IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13270 13310 ANNOY.OFF=VAL(HJ$) 13320 IF ANNOY.OFF<0 OR ANNOY.OFF>2400 THEN GOTO 13270 13330 IF ANNOY.ON>ANNOY.OFF THEN SWAP ANNOY.ON,ANNOY.OFF 13340 GOTO 12360 13350 LOCATE 24,5:PRINT"Set number of rings to ring-back on voice grade line "; 13360 LINE INPUT;HJ$ 13370 CBACK=FIX(VAL(HJ$)) 13380 IF CBACK<0 OR CBACK>99 THEN GOTO 13350 13390 GOTO 12360 13400 LOCATE 24,5:PRINT"Specify single drive in the range A->"+M$+" for uploading. "; 13410 LINE INPUT;HJ$ 13420 IF LEN(HJ$)<>1 THEN GOTO 13400 13430 GOSUB 60390 13440 IF HJ$<"A" OR HJ$>M$ THEN GOTO 13400 13450 M6$=HJ$ 13460 GOTO 12360 13470 LOCATE 24,5:PRINT"Specify drives (max of 5) in the range A->"+M$+" for download files. "; 13480 LINE INPUT;HJ$ 13490 IF LEN(HJ$)<1 OR LEN(HJ$)>5 THEN GOTO 13470 13500 GOSUB 60390 13510 FOR I=1 TO LEN(HJ$) 13520 A$(I)=MID$(HJ$,I,1) 13530 NEXT 13540 FOR I=1 TO LEN(HJ$) 13550 IF A$(I)<"A" OR A$(I)>M$ THEN GOTO 13470 13560 NEXT 13570 M7$=HJ$ 13580 GOTO 12360 13590 LOCATE 24,5:PRINT"Directory ID (max of 5 characters) for upload directory."; 13600 LINE INPUT;HJ$:GOSUB 60390 13610 IF LEN(HJ$)<1 OR LEN(HJ$)>5 THEN GOTO 13590 13620 FOR J=1 TO LEN(HJ$) 13630 X=ASC(MID$(HJ$,J,1)) 13640 IF (X>64 AND X<91) THEN GOTO 13720 13650 IF (X>47 AND X<58) THEN GOTO 13720 13660 IF (X=33) THEN GOTO 13720 13670 IF (X>34 AND X<42) THEN GOTO 13720 13680 IF (X>43 AND X<46) THEN GOTO 13720 13690 IF (X>96 AND X<124) THEN GOTO 13720 13700 IF (X=125) THEN GOTO 13720 13710 GOTO 13590 13720 NEXT 13730 UDIR$="DIR"+HJ$ 13740 GOTO 12360 13750 LOCATE 24,5:PRINT"Prompt bell default? (ON or OFF) "; 13760 LINE INPUT;HJ$ 13770 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 13750 13780 GOSUB 60390 13790 IF HJ$="ON" THEN GOTO 13820 13800 IF HJ$="OFF" THEN GOTO 13820 13810 GOTO 13750 13820 M10$=HJ$ 13830 GOTO 12360 13840 LOCATE 24,5:PRINT"Set maximum minutes a user can stay on the system "; 13850 LINE INPUT;HJ$ 13860 TIME.MAX!=VAL(HJ$) 13870 IF TIME.MAX!<0 OR TIME.MAX!>1440 THEN GOTO 13840 13880 GOTO 12360 13890 LOCATE 24,5:PRINT"Set maximum number of messages allowed (MAX=250) "; 13900 LINE INPUT;HJ$ 13910 MESSAGE.MAX=VAL(HJ$) 13920 IF MESSAGE.MAX<1 OR MESSAGE.MAX>250 THEN GOTO 13890 13930 GOTO 21570 13940 LOCATE 24,5:PRINT"Set number of months before an inactive user is purged. "; 13950 LINE INPUT;HJ$ 13960 LAPSE.MAX=VAL(HJ$) 13970 IF LAPSE.MAX<1 OR LAPSE.MAX>12 THEN GOTO 13940 13980 GOTO 12360 13990 LOCATE 24,5:PRINT"Display user sessions on the screen? (YES or NO) "; 14000 GOSUB 22380:ON ANSW GOTO 14010,14010,13990,13990 14010 M11$=HJ$ 14020 GOTO 12360 14120 CP1=1 14130 CP2=2 14140 LOCATE 24,5:PRINT"Number of communication port to be used ("+STR$(CP1)+" or"+STR$(CP2)+" )? "; 14150 LINE INPUT;HJ$ 14160 IF LEN(HJ$)<>1 THEN GOTO 14120 14170 IF FIX(VAL(MID$(HJ$,1,1)))<CP1 OR FIX(VAL(MID$(HJ$,1,1)))>CP2 THEN GOTO 14120 14180 M13$="COM"+HJ$ 14190 GOTO 12360 14200 CURPAGE=2 14210 GOSUB 24800 14220 LOCATE 3,10:PRINT"21. Foreground color (for color monitors) is -----"STR$(FGR) 14230 LOCATE 4,10:PRINT"22. Background color (for color monitors) is -----"STR$(BGR) 14240 LOCATE 5,10:PRINT"23. The border color (for color monitors) is -----"STR$(BDR) 14250 LOCATE 6,10:PRINT"24. The modem speaker default is ----------------- "+M14$ 14260 LOCATE 7,10:PRINT"25. Remind users of messages that they left ------ "+M16$ 14270 LOCATE 8,10:PRINT"26. Remind users of # uploads and downloads? ----- "+M19$ 14280 LOCATE 9,10:PRINT"27. Default user page length is ------------------"STR$(PL) 14290 LOCATE 10,10:PRINT"28. Default user line width is -------------------"STR$(LW) 14300 LOCATE 11,10:PRINT"29. Require XMODEM protocol for binary files ----- "+M17$ 14310 LOCATE 12,10:PRINT"30. Omit ";DIR$;" from N)ew command ";STRING$(22-LEN(DIR$),"-");" ";OMIT.DIR$ 14320 LOCATE 13,10:PRINT"31. Omit ";M6$+":"+UDIR$;" from N)ew command ";STRING$(20-LEN(UDIR$),"-");" ";OMIT.UDIR$ 14330 LOCATE 14,10:PRINT"32. Is system 'welcome' interruptable? ----------- "+M18$ 14340 LOCATE 15,10:PRINT"33. Are system bulletins to be 'optional'? ------- "+M15$ 14350 IF COMPAQ THEN M27$="YES" ELSE M27$="NO" 14360 LOCATE 16,10:PRINT"34. Will RBBS-PC be running on a non-IBM PC? ----- "+M27$ 14370 GOSUB 24890 14380 GOSUB 22160 14390 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12360,14570,14410 14400 GOTO 14380 14410 GOSUB 50340 14420 IF HJ$="21" THEN GOSUB 15520: GOTO 15530 14430 IF HJ$="22" THEN GOSUB 15520: GOTO 15590 14440 IF HJ$="23" THEN GOSUB 15520: GOTO 15650 14450 IF HJ$="24" THEN GOTO 15710 14460 IF HJ$="25" THEN GOTO 15800 14470 IF HJ$="26" THEN GOTO 16690 14480 IF HJ$="27" THEN GOTO 16730 14490 IF HJ$="28" THEN GOTO 16790 14500 IF HJ$="29" THEN GOTO 15880 14510 IF HJ$="30" THEN GOTO 15920 14520 IF HJ$="31" THEN GOTO 15960 14530 IF HJ$="32" THEN GOTO 16000 14540 IF HJ$="33" THEN GOTO 15840 14550 IF HJ$="34" THEN GOTO 16040 14560 GOTO 14370 14570 CURPAGE=3 14580 GOSUB 24800 14590 LOCATE 3,10:PRINT"41. Drive containing RBBS-PC bulletins is -------- "+BTDEV$ 14600 LOCATE 4,10:PRINT"42. Name of file describing 'bulletins' is ------- "+BULLETIN$ 14610 LOCATE 5,10:PRINT"43. Number of active 'bulletins' -----------------"+STR$(BULL) 14620 LOCATE 6,10:PRINT"44. Prefix used to name bulletin files is -------- "+BULLET1$ 14630 LOCATE 7,10:PRINT"45. Drive containing 'help' files is ------------- "+HTDEV$ 14640 LOCATE 8,10:PRINT"46. Prefix used to name the eight 'help' files --- "+HELP$ 14650 LOCATE 9,10:PRINT"47. Name of 'newuser' file shown to new users ---- "+NEWUSER$ 14660 LOCATE 10,10:PRINT"48. Name of 'welcome' file shown at logon -------- "+WELCOME$ 14670 LOCATE 11,10:PRINT"49. Name of file describing file directories ----- "+DIR$ 14680 LOCATE 12,10:PRINT"50. The SYSOP's command menu is named ------------ "+MENU1$ 14690 LOCATE 13,10:PRINT"51. The main messages subsystem menu is named ---- "+MENU2$ 14700 LOCATE 14,10:PRINT"52. The file subsystem menu is named ------------- "+MENU3$ 14710 LOCATE 15,10:PRINT"53. The utilities subsystem menu is named -------- "+MENU4$ 14730 LOCATE 16,10:PRINT"54. Menu that lists available conferences is ----- "+CONF$ 14740 LOCATE 17,10:PRINT"55. File containing invalid user names ----------- "+BADNAME$ 14750 GOSUB 24890 14760 GOSUB 22160 14770 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,14200,15340,14790 14780 GOTO 14760 14790 GOSUB 50340 14800 IF HJ$="41"THEN GOSUB 15160:BTDEV$=TDEV$:GOTO 14570 14810 IF HJ$="42" THEN GOSUB 14970:BULLETIN$=HJ$: GOTO 14570 14820 IF HJ$="43" THEN GOTO 15290 14830 IF HJ$="44" THEN GOSUB 14970: IF LEN(HJ$)>6 THEN HJ$="44":GOTO 14810 ELSE BULLET1$=HJ$: GOTO 14570 14840 IF HJ$="45" THEN GOSUB 15160:HTDEV$=HJ$: GOTO 14570 14850 IF HJ$="46" THEN GOSUB 14970: IF LEN(HJ$)>7 THEN HJ$="44":GOTO 14810 ELSE HELP$=HJ$: GOTO 14570 14860 IF HJ$="47" THEN GOSUB 17330: NEWUSER$=SDEV$+":"+HJ$: GOTO 14570 14870 IF HJ$="48" THEN GOSUB 17330: WELCOME$=SDEV$+":"+HJ$: GOTO 14570 14880 IF HJ$="49" THEN GOSUB 14970: DIR$=HJ$: GOTO 14570 14890 IF HJ$="50" THEN GOSUB 17330: MENU1$=SDEV$+":"+HJ$: GOTO 14570 14900 IF HJ$="51" THEN GOSUB 17330: MENU2$=SDEV$+":"+HJ$: GOTO 14570 14910 IF HJ$="52" THEN GOSUB 17330: MENU3$=SDEV$+":"+HJ$: GOTO 14570 14920 IF HJ$="53" THEN GOSUB 17330: MENU4$=SDEV$+":"+HJ$: GOTO 14570 14940 IF HJ$="54" THEN GOSUB 17330: CONF$=SDEV$+":"+HJ$: GOTO 14570 14950 IF HJ$="55" THEN GOSUB 17330: BADNAME$=SDEV$+":"+HJ$:GOTO 14570 14960 GOTO 14750 14970 X$=HJ$ 14980 LOCATE 24,5:PRINT SPC(74):LOCATE 24,5:PRINT"Specify name of the file for option "+X$+". "; 14990 LINE INPUT;HJ$:GOSUB 60390 15000 IF LEN(HJ$)<1 OR LEN(HJ$)>12 THEN GOTO 14980 15010 L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 15050 ELSE GOTO 14980 15020 IF L1>9 THEN GOTO 14980 15030 IF L1<2 THEN GOTO 14980 15040 IF LEN(HJ$)-L1>3 THEN GOTO 14980 15050 FOR J=1 TO LEN(HJ$) 15060 X=ASC(MID$(HJ$,J,1)) 15070 IF (X>63 AND X<91) THEN GOTO 15150 15080 IF (X>47 AND X<58) THEN GOTO 15150 15090 IF (X=33) THEN GOTO 15150 15100 IF (X>34 AND X<42) THEN GOTO 15150 15110 IF (X>43 AND X<47) THEN GOTO 15150 15120 IF (X>96 AND X<124) THEN GOTO 15150 15130 IF (X=125) THEN GOTO 15150 15140 GOTO 14980 15150 NEXT: RETURN 15160 X$=HJ$ 15170 LOCATE 24,5:PRINT"Specify drive in the range A->"+M$+" for option "+X$". "; 15180 LINE INPUT;HJ$ 15190 IF LEN(HJ$)<>1 THEN GOTO 15170 15200 GOSUB 60390 15210 IF HJ$<"A" OR HJ$>M$ THEN GOTO 15170 15220 TDEV$=HJ$ 15230 RETURN 15240 LOCATE 24,5:PRINT"What version of DOS will RBBS-PC be running under (1, 2, or 3)?"; 15250 LINE INPUT;HJ$ 15260 B1%=VAL(HJ$) 15270 IF B1%<1 OR B1%>3 THEN GOTO 15240 15280 DOSVER%=B1%:GOTO 12360 15290 LOCATE 24,5:PRINT"Enter number of active 'bulletins' (0 to 99)"; 15300 LINE INPUT;HJ$ 15310 B1%=VAL(HJ$) 15320 IF B1%<1 OR B1%>99 THEN GOTO 15290 15330 BULL=B1%:GOTO 14570 15340 CURPAGE=4 15350 GOSUB 24800 15360 LOCATE 4,10:PRINT"61. System file containing messages is named ----- "+MESSAGES$ 15380 LOCATE 5,10:PRINT"62. System file for 'callers' is named ----------- "+CALLERS$ 15390 LOCATE 6,10:PRINT"63. System file for comments to SYSOP is named --- "+COMMENTS$ 15400 LOCATE 7,10:PRINT"64. System file for recording users is named ----- "+USERS$ 15410 GOSUB 24890 15420 GOSUB 22160 15430 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,14570,16130,15450 15440 GOTO 15420 15450 GOSUB 50340 15460 IF HJ$="61" THEN GOSUB 17330: GOTO 15511 15480 IF HJ$="62" THEN GOSUB 17330: CALLERS$=SDEV$+":"+HJ$:GOTO 15340 15490 IF HJ$="63" THEN GOSUB 17330: COMMENTS$=SDEV$+":"+HJ$:GOTO 15340 15500 IF HJ$="64" THEN GOSUB 17330: GOTO 15512 15510 GOTO 15410 15511 IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="61":GOTO 15460 ELSE MESSAGES$=SDEV$+":"+HJ$:GOTO 15340 15512 IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="64":GOTO 15500 ELSE USERS$=SDEV$+":"+HJ$:GOTO 15340 15520 LOCATE 24,5:PRINT"(See the description of the COLOR statement in Basic.)";:RETURN 15530 LOCATE 25,5:PRINT"Enter foreground color (a value between 0 and 15)"; 15540 LINE INPUT;HJ$ 15550 B1=VAL(HJ$) 15560 IF B1<0 OR B1>15 THEN GOTO 15530 15570 FGR=B1 15580 GOTO 14200 15590 LOCATE 25,5:PRINT"Enter background color (a value between 0 and 7)"; 15600 LINE INPUT;HJ$ 15610 B1=VAL(HJ$) 15620 IF B1<0 OR B1>7 THEN GOTO 15590 15630 BGR=B1 15640 GOTO 14200 15650 LOCATE 25,5:PRINT"Enter the border color (a value between 0 and 7)"; 15660 LINE INPUT;HJ$ 15670 B1=VAL(HJ$) 15680 IF B1<0 OR B1>7 THEN GOTO 15650 15690 BDR=B1 15700 GOTO 14200 15710 LOCATE 24,5:PRINT"Modem speaker default? (ON or OFF) "; 15720 LINE INPUT;HJ$ 15730 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 15710 15740 GOSUB 60390 15750 IF HJ$="ON" THEN GOTO 15780 15760 IF HJ$="OFF" THEN GOTO 15780 15770 GOTO 15710 15780 M14$=HJ$ 15790 GOTO 14200 15800 LOCATE 24,5:PRINT"Remind users of the messages they left? (YES or NO) "; 15810 GOSUB 22380:ON ANSW GOTO 15820,15820,15800,15800 15820 M16$=HJ$ 15830 GOTO 14200 15840 LOCATE 24,5:PRINT"Are system bulletins to be optional? (YES or NO) "; 15850 GOSUB 22380:ON ANSW GOTO 15860,15860,15840,15840 15860 M15$=HJ$ 15870 GOTO 14200 15880 LOCATE 24,5:PRINT"Is XMODEM required for binary files? (YES or NO) "; 15890 GOSUB 22380:ON ANSW GOTO 15900,15900,15880,15880 15900 M17$=HJ$ 15910 GOTO 14200 15920 LOCATE 24,5:PRINT"Is ";DIR$;" omitted from the N)ew command? (YES or NO) "; 15930 GOSUB 22380:ON ANSW GOTO 15940,15940,15920,15920 15940 OMIT.DIR$=HJ$ 15950 GOTO 14200 15960 LOCATE 24,5:PRINT"Is ";UDIR$;" omitted from the N)ew command? (YES or NO) "; 15970 GOSUB 22380:ON ANSW GOTO 15980,15980,15960,15960 15980 OMIT.UDIR$=HJ$ 15990 GOTO 14200 16000 LOCATE 24,5:PRINT"Is system 'welcome' interruptable (YES OR NO) "; 16010 GOSUB 22380:ON ANSW GOTO 16020,16020,16000,16000 16020 M18$=HJ$ 16030 GOTO 14200 16040 LOCATE 24,5:PRINT"Will RBBS-PC be running on a non-IBM PC (YES OR NO) "; 16050 GOSUB 22380:ON ANSW GOTO 16060,16080,16040,16040 16060 COMPAQ=0 16070 GOTO 14200 16080 GOSUB 50340:LOCATE 24,5:PRINT"Will RBBS-PC be running on a COMPAQ+ (YES OR NO) "; 16090 GOSUB 22380:ON ANSW GOTO 16110,16100,16080,16080 16100 COMPAQ=1:GOTO 14200 16110 COMPAQ=2:GOTO 14200 16120 GOTO 14200 16130 CURPAGE=5 16140 GOSUB 24800 16150 LOCATE 3,10:PRINT"81. Is the 'door' subystem available? ------------ "+M21$ 16160 LOCATE 4,10:PRINT"82. The 'door' subsystem menu is named ----------- "+MENU5$ 16170 LOCATE 5,10:PRINT"84. File RBBS builds dynamically to open a 'door'- "+CTTY$ 16180 LOCATE 6,10:PRINT"83. When a 'door' closes, file to re-invoke RBBS - "+RBBS$ 16190 GOSUB 24890 16200 GOSUB 22160 16210 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,15340,16910,16230 16220 GOTO 16200 16230 GOSUB 50340 16240 IF HJ$="81" THEN GOTO 16290 16250 IF HJ$="82" THEN GOSUB 17330: MENU5$=SDEV$+":"+HJ$:GOTO 16130 16260 IF HJ$="83" THEN GOSUB 17330: RBBS$=SDEV$+":"+HJ$:GOTO 16130 16270 IF HJ$="84" THEN GOSUB 17330: CTTY$=SDEV$+":"+HJ$:GOTO 16130 16280 GOTO 16190 16290 LOCATE 24,5:PRINT"Is the window subsystem available? (YES or NO) "; 16300 GOSUB 22380:ON ANSW GOTO 16310,16310,16290,16290 16310 M21$=HJ$ 16320 IF M21$="NO" GOTO 16130 ELSE LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? "; 16330 GOSUB 22380:ON ANSW GOTO 16340,16350,16290,16290 16340 IWAIT!=FNTI!+15:GOSUB 16470:GOTO 16130 16350 GOSUB 16380:GOTO 16360 16360 LOCATE 23,1:PRINT"Current Multi-Link terminal type for WINDOWS is ";MTERM 16370 LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Enter Multi-Link terminal type for WINDOWS ";:GOSUB 17420:MTERM=B1:IF MTERM <1 THEN 16370 ELSE IF MTERM >11 THEN GOTO 16370 ELSE GOTO 16130 16380 CLS:PRINT "Multi-Link is a software product of The Software Link, Inc.":PRINT"located at 6700 23-B Roswell Road, Atlanta, Georgia 30328." 16390 PRINT "It allows IBM's DOS 1.1 or 2.0 or the IBM PC to be a multi-tasking" 16400 PRINT "operating system. The Capital PC User Group has no connection" 16410 PRINT "whatsoever with this company or it's products. In fact The Software":PRINT"Link has only occasionally sent updates of it's new releases to us.":PRINT"That is the reason that RBBS-PC is only supported under Release 2.07 of" 16420 PRINT"Multi-Link. I feel strongly that IBM's DOS for the PC should be":PRINT"multi-tasking. Because Multi-Link provides this capability for the widest" 16430 PRINT"ranges of DOS software for the IBM PC, RBBS-PC has been enhanced":PRINT "to run under Multi-Link. Any questions regarding RBBS-PC under Multi-Link":PRINT"(other than Release 2.07 of Multi-Link) should be directed to The" 16440 PRINT"Software Link's customer support group at (404) 255-1254.":PRINT"":PRINT"I have run RBBS-PC under Multi-Link for over nine months -- since Multi-Link":PRINT"release 2.04. Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH" 16450 PRINT"due to Multi-Link. I think it is a quality product but a bit over-priced.":PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software":PRINT"should be relatively inexpensive.":PRINT"":PRINT SPC(60);"Tom Mack" 16460 PRINT SPC(60);"July 1, 1984":RETURN 16470 CLS 16480 PRINT"******Warning******" 16490 PRINT"IBM's DOS absolutely REQUIRES 16500 PRINT"any software package running 16510 PRINT"as a 'door' (i.e. via a 16520 PRINT"communication port) to monitor 16530 PRINT"the communication port! 16540 PRINT"Unless the software that you 16550 PRINT"invoke via the RBBS-PC 'door' 16560 PRINT"mechanism monitors the communication 16570 PRINT"line, your system will be vulnerable 16580 PRINT"to being hung -- and worse!!! If you 16590 PRINT"don't THROUGHLY understand section 16600 PRINT"10.0 of RBBS-PC's documentation 16610 PRINT"which discusses the pitfalls of 16620 PRINT"opening RBBS-PC's 'doors' to your 16630 PRINT"users, DON'T use 'doors'!!!!!" 16640 IF FNTI!<IWAIT! THEN 16640 ELSE RETURN 16650 LOCATE 24,5:PRINT"Limit the maximum time a users can be on each day? (YES or NO) "; 16660 GOSUB 22380:ON ANSW GOTO 16670,16670,16650,16650 16670 M26$=HJ$ 16680 GOTO 12360 16690 LOCATE 24,5:PRINT"Remind users of # uploads and downloads? (YES or NO) "; 16700 GOSUB 22380:ON ANSW GOTO 16710,16710,16690,16690 16710 M19$=HJ$ 16720 GOTO 14200 16730 LOCATE 24,5:PRINT"Default user page length?(a value between 0 and 255)"; 16740 LINE INPUT;HJ$ 16750 B1=VAL(HJ$) 16760 IF B1<0 OR B1>255 THEN GOTO 16730 16770 PL=B1 16780 GOTO 14200 16790 LOCATE 24,5:PRINT"Default user line width? (a value between 0 and 255)"; 16800 LINE INPUT;HJ$ 16810 B1=VAL(HJ$) 16820 IF B1<0 OR B1>255 THEN GOTO 16790 16830 LW=B1 16840 GOTO 14200 16850 LOCATE 24,5:PRINT"Security level temporarily imposed on conference 'viewers'"; 16860 HJ$="V>iew" 16870 GOSUB 17420:VIEWSEC=B1 16900 GOTO 16910 16910 CURPAGE=6 16920 GOSUB 24800 16930 LOCATE 3,9:PRINT"101. Minimum security level to get onto RBBS ------ "STR$(MINSEC) 16940 LOCATE 4,9:PRINT"102. Default security level for new callers ------- "STR$(DFSEC) 16950 LOCATE 5,9:PRINT"103. Security level for SYSOP --------------------- "STR$(SYSSEC) 16960 LOCATE 6,9:PRINT"104. Files with download security are listed in --- "+FILE.SEC$ 16970 LOCATE 7,9:PRINT"105. Minimum security level to see SYSOP's menu --- "STR$(SEESYS) 16980 LOCATE 8,9:PRINT"106. Minimum security level to use RBBS-PC 'doors' "+STR$(SEEDOORS) 16990 LOCATE 9,9:PRINT"107. Max # security violations before disconnect -- "STR$(NVIO) 17000 M22$=STR$(SSEC):IX=SA(1):FOR I=2 TO 8:IF IX<>SA(I) THEN M22$="(Variable)":GOTO 17010 ELSE NEXT 17010 LOCATE 10,9:PRINT"108. Security level for SYSOP functions ----------- "M22$ 17020 M23$=STR$(MMSEC):IX=MD(1):FOR I=2 TO 20:IF IX<>MD(I) THEN M23$="(Variable)":GOTO 17030 ELSE NEXT 17030 LOCATE 11,9:PRINT"109. Security level for main menu functions ------- "M23$ 17040 M24$=STR$(FILSEC):IX=FS(1):FOR I=2 TO 8:IF IX<>FS(I) THEN M24$="(Variable)":GOTO 17050 ELSE NEXT 17050 LOCATE 12,9:PRINT"110. Security level for file menu functions ------- "M24$ 17060 M25$=STR$(UTLSEC):IX=UA(1):FOR I=2 TO 12:IF IX<>UA(I) THEN M25$="(Variable)":GOTO 17070 ELSE NEXT 17070 LOCATE 13,9:PRINT"111. Security level for utilities menu functions -- "M25$ 17080 LOCATE 14,9:PRINT"112. File with privileged group passwords is named- "PASWRD$ 17090 LOCATE 15,9:PRINT"113. Max # of password changes in a session ------- "STR$(CHMAX) 17100 LOCATE 16,9:PRINT"114. Min. security level for temp. password changes "STR$(CHSEC) 17110 LOCATE 17,9:PRINT"115. Min. security level to overwrite on uploads -- "STR$(WOVR) 17115 LOCATE 18,9:PRINT"116. Security level of conference 'viewers' ------- "STR$(VIEWSEC) 17116 LOCATE 19,9:PRINT"117. User's security exempeted from 'packing' ----- "STR$(PACKSEC) 17120 GOSUB 24890 17130 GOSUB 22160 17140 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,16130,21550,17160 17150 GOTO 17130 17160 GOSUB 50340 17170 IF HJ$="101" THEN GOSUB 18730:GOSUB 17410:MINSEC=B1:GOTO 16910 17180 IF HJ$="102" THEN GOSUB 18730:GOSUB 17410:DFSEC=B1:GOTO 16910 17190 IF HJ$="103" THEN GOSUB 18730:GOSUB 17410:SYSSEC=B1:GOTO 16910 17200 IF HJ$="104" THEN GOSUB 17330:FILE.SEC$=SDEV$+":"+HJ$:GOTO 16910 17210 IF HJ$="105" THEN GOSUB 18730:GOSUB 17410:SEESYS=B1:GOTO 16910 17220 IF HJ$="106" THEN GOSUB 18730:GOSUB 17410:SEEDOORS=B1:GOTO 16910 17230 IF HJ$="107" THEN GOSUB 18730:GOSUB 17410:NVIO=B1:GOTO 16910 17240 IF HJ$="108" THEN GOTO 17460 17250 IF HJ$="109" THEN GOSUB 17460:MMSEC=B1:GOTO 16910 17260 IF HJ$="110" THEN GOSUB 17460:FILSEC=B1:GOTO 16910 17270 IF HJ$="111" THEN GOSUB 17460:UTLSEC=B1:GOTO 16910 17280 IF HJ$="112" THEN GOSUB 17330:PASWRD$=SDEV$+":"+HJ$:GOTO 16910 17290 IF HJ$="113" THEN LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Maximum number of password changes is? (0 or more)";:GOSUB 17420:CHMAX=B1:IF B1<0 THEN 17290 ELSE 16910 17300 IF HJ$="114" THEN GOSUB 18730:GOSUB 17410:CHSEC=B1:GOTO 16910 17310 IF HJ$="115" THEN HJ$="overwriting files on upload":GOSUB 17410:WOVR=B1:GOTO 16910 17315 IF HJ$="116" THEN GOTO 16850 17316 IF HJ$="117" THEN GOSUB 18730:GOSUB 17410:PACKSEC=B1:GOTO 16910 17320 GOTO 17120 17330 X$=HJ$:LOCATE 24,5:PRINT"Specify drive (A->"+M$+") where file for option "+X$+" will be located. "; 17340 LINE INPUT;HJ$ 17350 IF LEN(HJ$)<>1 THEN HJ$=X$:GOTO 17330 17360 GOSUB 60390 17370 IF HJ$<"A" OR HJ$>M$ THEN HJ$=X$:GOTO 17330 17380 SDEV$=HJ$ 17390 GOSUB 14980 17400 RETURN 17410 LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Security level for "+HJ$+" is? "; 17420 LINE INPUT;HK$ 17430 B1=VAL(HK$) 17440 IF B1=0 AND HK$<>"0" THEN 17410 17450 RETURN 17460 IF HJ$="108" THEN COMD$="SYSOP":GOTO 18480 17470 IF HJ$="109" THEN COMD$="Main Menu":GOTO 18100 17480 IF HJ$="110" THEN COMD$="File System":GOTO 17820 17490 IF HJ$="111" THEN COMD$="Utilities" 17500 LOCATE 24,1:PRINT"Set ALL the "+COMD$+" commands to the SAME security level? (YES or NO)"; 17510 LINE INPUT;X$ 17520 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17500 17530 SWAP HJ$,X$:GOSUB 60390:SWAP HJ$,X$ 17540 IF X$="YES" OR X$="Y" THEN HJ$="all "+COMD$+" commands":GOSUB 17410:FOR I=1 TO 12:UA(I)=B1:NEXT:UTLSEC=B1:GOTO 16910 17550 IF X$="NO" OR X$="N" THEN GOTO 17570 17560 GOTO 17500 17570 CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC12.3 Default Configuration";:COLOR FGR,BGR,BDR 17580 LOCATE 3,5:PRINT"The RBBS-PC Utilities Commands are as follows: 17590 LOCATE 4,8:PRINT"Command Security Level" 17600 LOCATE 5,10:PRINT"B)aud rate "+STR$(UA(1)) 17610 LOCATE 6,10:PRINT"G)raphics "+STR$(UA(2)) 17620 LOCATE 7,10:PRINT"H)elp "+STR$(UA(3)) 17630 LOCATE 8,10:PRINT"L)ine feeds "+STR$(UA(4)) 17640 LOCATE 9,10:PRINT"M)sg margin "+STR$(UA(5)) 17650 LOCATE 10,10:PRINT"N)ulls "+STR$(UA(6)) 17660 LOCATE 11,10:PRINT"P)ass word "+STR$(UA(7)) 17670 LOCATE 12,10:PRINT"Q)uit to main menu "+STR$(UA(8)) 17680 LOCATE 13,10:PRINT"S)tatistics "+STR$(UA(9)) 17690 LOCATE 14,10:PRINT"T)ime "+STR$(UA(10)) 17700 LOCATE 15,10:PRINT"U)serlog "+STR$(UA(11)) 17710 LOCATE 16,10:PRINT"!)Prompt sound "+STR$(UA(12)) 17720 LOCATE 24,5:PRINT"Enter first letter of command (CR to end)"; 17730 LINE INPUT;X$:IF X$="" GOTO 16910 17740 SWAP HJ$,X$ 17750 GOSUB 60390 17760 SWAP HJ$,X$ 17770 FF=INSTR("BGHLMNPQSTU!",X$) 17780 IF FF=0 THEN GOTO 17720 17790 HJ$="all "+COMD$+" '"+X$+"' commands":GOSUB 17410 17800 UA(FF)=B1 17810 GOTO 17570 17820 LOCATE 24,1:PRINT"Set ALL the "+COMD$+" commands to the SAME security level? (YES or NO)"; 17830 LINE INPUT;X$ 17840 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17820 17850 SWAP HJ$,X$:GOSUB 60390:SWAP HJ$,X$ 17860 IF X$="YES" OR X$="Y" THEN HJ$="all "+COMD$+" commands":GOSUB 17410:FOR I=1 TO 8:FS(I)=B1:NEXT:FILSEC=B1:GOTO 16910 17870 IF X$="NO" OR X$="N" THEN GOTO 17890 17880 GOTO 17820 17890 CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC12.3 Default Configuration";:COLOR FGR,BGR,BDR 17900 LOCATE 3,5:PRINT"The RBBS-PC File System Commands are as follows: 17910 LOCATE 4,8:PRINT"Command Security Level" 17920 LOCATE 5,10:PRINT"D)ownload a file "+STR$(FS(1)) 17930 LOCATE 6,10:PRINT"G)oodbye "+STR$(FS(2)) 17940 LOCATE 7,10:PRINT"H)elp "+STR$(FS(3)) 17950 LOCATE 8,10:PRINT"L)ist files "+STR$(FS(4)) 17960 LOCATE 9,10:PRINT"N)ew files "+STR$(FS(5)) 17970 LOCATE 10,10:PRINT"Q)uit to main menu "+STR$(FS(6)) 17980 LOCATE 11,10:PRINT"U)pload a file "+STR$(FS(7)) 17990 LOCATE 12,10:PRINT"?) Xfer info "+STR$(FS(8)) 18000 LOCATE 24,5:PRINT"Enter first letter of command (CR to end)"; 18010 LINE INPUT;X$:IF X$="" GOTO 16910 18020 SWAP HJ$,X$ 18030 GOSUB 60390 18040 SWAP HJ$,X$ 18050 FF=INSTR("DGHLNQU?",X$) 18060 IF FF=0 THEN GOTO 18000 18070 HJ$="all "+COMD$+" '"+X$+"' commands":GOSUB 17410 18080 FS(FF)=B1 18090 GOTO 17890 18100 LOCATE 24,1:PRINT"Set ALL the "+COMD$+" commands to the SAME security level? (YES or NO)"; 18110 LINE INPUT;X$ 18120 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18100 18130 SWAP HJ$,X$:GOSUB 60390:SWAP HJ$,X$ 18140 IF X$="YES" OR X$="Y" THEN HJ$="all "+COMD$+" commands":GOSUB 17410:FOR I=1 TO 20:MD(I)=B1:NEXT:MMSEC=B1:GOTO 16910 18150 IF X$="NO" OR X$="N" THEN GOTO 18170 18160 GOTO 18100 18170 CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC12.3 Default Configuration";:COLOR FGR,BGR,BDR 18180 LOCATE 3,5:PRINT"The RBBS-PC Main Menu Commands are as follows: 18190 LOCATE 4,8:PRINT"Command Security Level" 18200 LOCATE 5,10:PRINT"B)ulletins "+STR$(MD(1)) 18210 LOCATE 6,10:PRINT"C)omments "+STR$(MD(2)) 18220 LOCATE 7,10:PRINT"D)oor subystem "+STR$(MD(3)) 18230 LOCATE 8,10:PRINT"E)nter message "+STR$(MD(4)) 18240 LOCATE 9,10:PRINT"F)iles system "+STR$(MD(5)) 18250 LOCATE 10,10:PRINT"G)oodbye "+STR$(MD(6)) 18260 LOCATE 11,10:PRINT"H)elp "+STR$(MD(7)) 18270 LOCATE 12,10:PRINT"I)nitial welcome "+STR$(MD(8)) 18275 LOCATE 13,10:PRINT"J)oin a conference "+STR$(MD(9)) 18280 LOCATE 14,10:PRINT"K)ill messages "+STR$(MD(10)) 18290 LOCATE 15,10:PRINT"L)ines per page "+STR$(MD(11)) 18300 LOCATE 16,10:PRINT"O)perator "+STR$(MD(12)) 18310 LOCATE 17,10:PRINT"P)ersonal mail "+STR$(MD(13)) 18320 LOCATE 18,10:PRINT"Q)uick scan "+STR$(MD(14)) 18330 LOCATE 19,10:PRINT"R)ead messages "+STR$(MD(15)) 18340 LOCATE 20,10:PRINT"S)can messages "+STR$(MD(16)) 18350 LOCATE 21,10:PRINT"U)tilities (more) "+STR$(MD(17)) 18355 LOCATE 22,10:PRINT"V)iew a conference "+STR$(MD(18)) 18360 LOCATE 23,10:PRINT"X)Expert on/off "+STR$(MD(19)) 18370 LOCATE 24,10:PRINT"?)Functions "+STR$(MD(20)) 18380 LOCATE 25,5:PRINT"Enter first letter of command (CR to end)"; 18390 LINE INPUT;X$:IF X$="" GOTO 16910 18400 SWAP HJ$,X$ 18410 GOSUB 60390 18420 SWAP HJ$,X$ 18430 FF=INSTR("BCDEFGHIJKLOPQRSUVX?",X$) 18440 IF FF=0 THEN GOTO 18380 18450 HJ$="all "+COMD$+" '"+X$+"' commands":GOSUB 17410 18460 MD(FF)=B1 18470 GOTO 18170 18480 LOCATE 24,1:PRINT"Set ALL the "+COMD$+" commands to the SAME security level? (YES or NO)"; 18490 LINE INPUT;X$ 18500 IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18480 18510 SWAP HJ$,X$:GOSUB 60390:SWAP HJ$,X$ 18520 IF X$="YES" OR X$="Y" THEN HJ$="all "+COMD$+" commands":GOSUB 17410:FOR I=1 TO 8:SA(I)=B1:NEXT:SSEC=B1:GOTO 16910 18530 IF X$="NO" OR X$="N" THEN GOTO 18550 18540 GOTO 18480 18550 CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC12.3 Default Configuration";:COLOR FGR,BGR,BDR 18560 LOCATE 3,5:PRINT"The RBBS-PC Main Menu Commands are as follows: 18570 LOCATE 4,8:PRINT"Command Security Level" 18580 LOCATE 5,10:PRINT" 1 List comments "+STR$(SA(1)) 18590 LOCATE 6,10:PRINT" 2 List callers log "+STR$(SA(2)) 18600 LOCATE 7,10:PRINT" 3 Recover a Msg "+STR$(SA(3)) 18610 LOCATE 8,10:PRINT" 4 Erase comments "+STR$(SA(4)) 18620 LOCATE 9,10:PRINT" 5 Users maintenance "+STR$(SA(5)) 18630 LOCATE 10,10:PRINT" 6 Toggle page bell "+STR$(SA(6)) 18650 LOCATE 11,10:PRINT" 7 Exit to DOS 2 "+STR$(SA(7)) 18660 LOCATE 12,10:PRINT" 8 Display active users "+STR$(SA(8)) 18670 LOCATE 24,5:PRINT"Enter SYSOP function number (CR to end)"; 18680 LINE INPUT;X$:IF X$="" GOTO 16910 18690 IF VAL(X$)<1 OR VAL(X$)>9 THEN GOTO 18670 18700 HJ$="all "+COMD$+" '"+X$+"' commands":GOSUB 17410 18710 SA(VAL(X$))=B1 18720 GOTO 18550 18730 HJ$="option "+HJ$:RETURN 18740 LOCATE 24,1:PRINT SPC(79);:IF M5$="NOVICE" THEN XPR=0 18750 IF M5$="EXPERT" THEN XPR=-1 18760 FDEV$=M7$+M6$ 18770 IF M10$="OFF" THEN BELL=0 18780 IF M10$="ON" THEN BELL=-1 18790 IF M11$="YES" THEN PRT=TRUE 18800 IF M11$="NO" THEN PRT=FALSE 18810 IF M12$="COMPILED" THEN COMPILED=TRUE 18820 IF M12$="BASICA" THEN COMPILED=FALSE 18830 IF M14$="OFF" THEN SPEAKER=0 18840 IF M14$="ON" THEN SPEAKER=-1 18850 IF M15$="YES" THEN OPTBUL=TRUE 18860 IF M15$="NO" THEN OPTBUL=FALSE 18870 IF M16$="YES" THEN REMIND=TRUE 18880 IF M16$="NO" THEN REMIND=FALSE 18890 IF M17$="YES" THEN BTOK=TRUE 18900 IF M17$="NO" THEN BTOK=FALSE 18910 IF M18$="YES" THEN OPTWEL=TRUE 18920 IF M18$="NO" THEN OPTWEL=FALSE 18930 IF M19$="YES" THEN UPLDDLD=TRUE 18940 IF M19$="NO" THEN UPLDDLD=FALSE 18950 IF M21$="YES" THEN WINDW=TRUE 18960 IF M21$="NO" THEN WINDW=FALSE 18970 IF M26$="YES" THEN M26=TRUE 18980 IF M26$="NO" THEN M26=FALSE 18985 F=0:IF ISWP THEN GOSUB 50300:F=1 18990 OPEN "O",#1,CONFIG$ 19000 IF INSTR(RDEV$,":")<1 THEN RDEV$=RDEV$+":" 19010 IF INSTR(MDEV$,":")<1 THEN MDEV$=MDEV$+":" 19020 IF INSTR(SDEV$,":")<1 THEN SDEV$=SDEV$+":" 19030 IF INSTR(TDEV$,":")<1 THEN TDEV$=TDEV$+":" 19040 WRITE #1,FDEV$,PASS1$,PASS2$,NFIR$,NLAS$,CBACK,ANNOY.ON,ANNOY.OFF,TIME.MAX!,MESSAGE.MAX,LAPSE.MAX,UDIR$,XPR,BULL,BELL,PRT,COMPILED,MENU1$,MENU2$,MENU3$,MENU4$,MENU5$,CONF$,VIEWSEC,OPTWEL,UPLDDLD,PL,LW,WINDW,MDEV$ 19050 BULLETIN$=TDEV$+BULLETIN$ 19060 BULLET1$=TDEV$+BULLET1$ 19070 FOR I=1 TO 8 19080 HELP$(I)=HTDEV$+":"+HELP$+RIGHT$(STR$(I),1) 19090 NEXT 19100 MD(5)=MINSEC:FS(2)=MINSEC 19110 WRITE #1,MESSAGES$,MESSAGES.BAK$,CALLERS$,COMMENTS$,USERS$,WELCOME$,NEWUSER$,DIR$,M13$,OPTBUL,SPEAKER,TDEV$,DOSVER%,FGR,BGR,BDR,RBBS$,CTTY$,OMIT.DIR$,OMIT.UDIR$ 19120 WRITE #1,HELP$(1),HELP$(2),HELP$(3),HELP$(4),HELP$(5),HELP$(6),HELP$(7),HELP$(8),BULLETIN$,BULLET1$,BTDEV$,REMIND,BTOK,SEEDOORS,MAXRBBS,SHRD,CYCLE,USERMAX,MSGMAX!,BADNAME$ 19130 WRITE #1,MINSEC,DFSEC,SYSSEC,FILE.SEC$,SEESYS,KEYPW$,NVIO,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),SA(8),PASWRD$,CHMAX,CHSEC,WOVR,MTERM,M26 19140 WRITE #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8) 19150 WRITE #1,UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),COMPAQ 19160 WRITE #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SM10$,SM11$,PACKSEC 19170 CLOSE #1 19175 IF F=1 THEN GOSUB 50300 19180 NAME USERS$ AS USERS$ 19190 GOTO 60370 19200 IFUSER=0 19220 GOSUB 22760 19230 IF IFUSER=1 THEN GOTO 19390 19240 IFUSER=1 19250 INUSER=USERLOF+1 19260 ILUSER=USERLOF 19270 IF ILUSER<USERMAX THEN 19400 19280 IF ILUSER=USERMAX THEN USW=1:GOTO 20030 19290 CLS 19300 GOSUB 60380 19310 LOCATE 15,5:PRINT USERS$+" file contains"+STR$(USERLOF)+" records! 19320 LOCATE 17,5:PRINT "Option 125 requested a "+USERS$+" file of"+STR$(USERMAX)+" records." 19330 GOSUB 60380 19340 LOCATE 19,5:PRINT "Please revise option 125 to be equal to or greater than"+STR$(USERLOF) 19350 IWAIT!=FNTI!+10 19360 GOSUB 60440 19380 GOTO 21550 19390 IF USERMAX<INUSER THEN 19300 19391 IF USERMAX=ILUSER THEN USW=1:GOTO 20030 19400 OPEN "R",1,USERS$,128 19410 FIELD 1,31 AS O.N$,15 AS OG$,2 AS OH$,14 AS OI$,24 AS OJ$,19 AS OL$,14 AS OM$,3 AS OO$,2 AS OQ$,2 AS OS$,2 AS OT$ 19415 GOSUB 50350 19420 A$=F$:GOSUB 50095:OPEN "R",2,A$,128 19430 FIELD 2,31 AS N$,15 AS PW$,2 AS SL$,14 AS OP$,24 AS CS$,19 AS MA$,14 AS TD$,3 AS LND$,2 AS UDL$,2 AS UUL$,2 AS ET$ 19440 A! = INUSER-1 19460 FOR J = 1 TO A! 19470 GET 1 19480 LSET N$ = O.N$ 19490 LSET PW$ = OG$ 19500 LSET SL$ = OH$ 19510 LSET OP$ = OI$ 19520 LSET CS$ = OJ$ 19530 LSET MA$ = OL$ 19540 LSET TD$ = OM$ 19550 LSET LND$ = OO$ 19560 LSET UDL$ = OQ$ 19570 LSET UUL$ = OS$ 19580 LSET ET$ = OT$ 19590 PUT 2 19600 GOSUB 25020 19610 NEXT 19630 IF A!=USERMAX THEN GOTO 19800 19650 FOR J=A!+1 TO USERMAX 19660 LSET N$ = SPACE$(31) 19670 LSET PW$ = SPACE$(15) 19680 LSET SL$ = SPACE$(2) 19690 LSET OP$ = SPACE$(14) 19700 LSET CS$ = SPACE$(24) 19710 LSET MA$ = SPACE$(19) 19720 LSET TD$ = SPACE$(14) 19730 LSET LND$ = SPACE$(3) 19740 LSET UDL$ = SPACE$(2) 19750 LSET UUL$ = SPACE$(2) 19760 LSET ET$ = SPACE$(2) 19770 PUT 2 19780 GOSUB 25020 19790 NEXT 19800 ILUSER=LOC(2) ' point to last available user record 19810 CLOSE 1,2 19815 GOSUB 50380 19820 GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+USERS$+" file? (YES or NO)?"; 19830 GOSUB 22380:ON ANSW GOTO 19890,19910,19820,19820 19890 A$=USERS$:GOSUB 50096:NAME USERS$ AS A$ 19900 GOTO 19920 19910 KILL USERS$ 19920 GOSUB 50350:A$=F$:GOSUB 50095:NAME A$ AS USERS$ 19930 GOTO 20030 19940 GOSUB 50000 20030 NAME MESSAGES$ AS MESSAGES$ 20040 GOTO 60370 20050 MSGMAX.OLD!=MSGMAX!:USERMAX.OLD=USERMAX:GOSUB 22770:MSGMAX!=MSGMAX.OLD!:USERMAX=USERMAX.OLD:OPEN "R",1,MESSAGES$ 20060 FIELD 1,128 AS R$ 20070 GET 1,1 20080 MSW=0 20090 NAM$=SPACE$(31) 20110 IF NAM$<>MID$(R$,21,31)THEN 21010 20115 OLDMAX=VAL(MID$(R$,127,2)) 20130 IF MSGMAX!=ILMSG AND OLDMAX=MAXRBBS THEN MSW=1:CLOSE 1:GOTO 24970 20140 IF MSGMAX!>INMSG AND OLDMAX=MAXRBBS THEN GOTO 20340 20150 IF MSGMAX!<INMSG THEN GOTO 20170 20155 IF MAXRBBS<=OLDMAX THEN GOTO 20340 20160 IF (ILMSG-INMSG)=>(MAXRBBS-OLDMAX) THEN GOTO 20340 20161 CLS 20162 GOSUB 60380 20163 LOCATE 15,5:PRINT MESSAGES$+" file contains"+STR$(OLDMAX)+" nodes!" 20164 LOCATE 17,5:PRINT "Option 121 requested a "+MESSAGES$+" file with"+STR$(MAXRBBS)+" nodes." 20165 GOSUB 60380 20166 LOCATE 19,5:PRINT "Please revise option 124 to be equal to or greater than"+STR$(MSGMAX!+(MAXRBBS-OLDMAX)) 20167 GOTO 20240 20170 CLS 20180 GOSUB 60380 20190 LOCATE 15,5:PRINT MESSAGES$+" file contains"+STR$(INMSG-1)+" active records! 20200 LOCATE 17,5:PRINT "Option 124 requested a "+MESSAGES$+" file of"+STR$(MSGMAX!)+" records." 20210 GOSUB 60380 20230 LOCATE 19,5:PRINT "Please revise option 124 to be equal to or greater than"+STR$(INMSG) 20240 IWAIT!=FNTI!+10 20250 GOSUB 60440 20260 CLOSE 1 20270 GOTO 21550 20340 MSGSTRT=IFMSG 20350 A$=MESSAGES$:GOSUB 50095:OPEN "R",2,A$,128 20360 FIELD 2,128 AS RR$ 20370 MID$(R$,127,2)=STR$(MAXRBBS):PUT 1,1 20380 IF MAXRBBS<=OLDMAX THEN OLDMAX=MAXRBBS 20410 FOR J!=1 TO OLDMAX+1 20420 GET 1,J! 20430 LSET RR$=R$ 20440 PUT 2 ' write out existing "door" records 20450 GOSUB 25030 20460 NEXT 20470 IF MAXRBBS<=OLDMAX THEN GOTO 20530 20480 FOR J! = OLDMAX+1 TO MAXRBBS 20490 GOSUB 20800 20500 PUT 2 ' write out expansion "door" records 20510 GOSUB 25030 20520 NEXT 20530 GET 1,MSGSTRT ' point to first message record 20540 IF IFMSG=INMSG THEN IFMSG=LOC(2)+1:INMSG=IFMSG:GOTO 20630 20550 STRT=IFMSG 20560 IFMSG=LOC(2)+1 20570 FOR J!=STRT TO INMSG-1 20580 GET 1,J! 20590 LSET RR$=R$ 20600 PUT 2 ' write out existing message records 20610 GOSUB 25030 20620 NEXT 20630 CLOSE 1 20640 INEWMSG=LOC(2)+1 20650 IF MSGMAX!<INMSG THEN GOTO 20710 20660 FOR J!=INMSG TO MSGMAX! 20670 LSET RR$ = SPACE$(128) 20680 PUT 2,J! ' write out expansion message records 20690 GOSUB 25030 20700 NEXT 20710 INMSG=INEWMSG:ILMSG=LOC(2) 20720 GOSUB 21430 20730 GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+MESSAGES$+" file? (YES or NO)?"; 20740 GOSUB 22380:ON ANSW GOTO 20750,20770,20730,20730 20750 A$=MESSAGES$:GOSUB 50096:NAME MESSAGES$ AS A$ 20760 GOTO 20780 20770 KILL MESSAGES$ 20780 A$=MESSAGES$:GOSUB 50095:NAME A$ AS MESSAGES$ 20790 GOTO 24970 20800 LSET RR$=SPACE$(31)+"-1 0 0 0 0 0 0 0 0 0 0I":RETURN 20810 GOSUB 50100 21000 GOTO 24970 21010 LOCATE 22,1:PRINT SPC(79);:LOCATE 22,15:PRINT"Reformat old (pre CPC12.3) "+MESSAGES$+" file? (YES or NO)?"; 21020 GOSUB 22380:ON ANSW GOTO 24970,21030,21010,21010 21030 A$=MESSAGES$:GOSUB 50095:OPEN "R",2,A$,128 21040 FIELD 2,128 AS RR$ 21050 LSET RR$=SPACE$(126)+STR$(MAXRBBS) 21060 LE=VAL(LEFT$(R$,8)) 21070 CJ=VAL(MID$(R$,11,10)) 21080 MID$(RR$,1,8)=STR$(LE) 21090 MID$(RR$,11,10)=STR$(CJ) 21100 PUT 2,1 ' write out first record 21110 GOSUB 25030 21120 LSET RR$=SPACE$(128) 21130 MID$(RR$,1,31)=MID$(R$,21,31) 21140 MID$(RR$,32,25)=MID$(R$,9,2)+MID$(R$,52,23) 21150 MID$(RR$,57,1)="I" 21160 PUT 2 ' write first "door" record of old msg file 21170 A2!=1 21180 A3!=MAXRBBS 21190 A4!=LOF(1)/128-1 21200 IF MAXRBBS=1 GOTO 21260 21210 FOR J! = A2!+1 TO A3! 21220 GOSUB 20800 21230 PUT 2 ' write out expansion "door" records 21240 GOSUB 25030 21250 NEXT 21260 IFMSG=LOC(2)+1 ' point to first message record 21270 FOR J! = 1 TO A4! 21280 GET 1 21290 LSET RR$=R$ 21300 PUT 2 ' write out existing message records 21310 GOSUB 25030 21320 NEXT 21330 CLOSE 1 21340 INMSG=LOC(2) ' point to next available message record 21350 IF LOC(2)=>MSGMAX! GOTO 21420 21360 INMSG=LOC(2)+1 ' point to next available message record 21370 FOR J!=INMSG TO MSGMAX! 21380 LSET RR$ = SPACE$(128) 21390 PUT 2,J! ' write out expansion message records 21400 GOSUB 25030 21410 NEXT 21420 ILMSG=LOC(2) ' point to last available message record 21422 GOSUB 21430:GOTO 20730 21430 GET 2,1 21435 IF ICHANGE THEN IFUSER=IFUSER.NEW:INUSER=INUSER.NEW:ILUSER=ILUSER.NEW 21439 MID$(RR$,52,38)=SPACE$(38) 'reset all counters before filling 21440 MID$(RR$,52,5)=STR$(IFUSER) '52-56 = first rec. of msgs file 21450 MID$(RR$,57,5)=STR$(INUSER) '57-61 = next avail. user record 21460 MID$(RR$,62,5)=STR$(ILUSER) '62-66 = last rec. of user file 21470 MID$(RR$,67,1)=SPACE$(1) ' 67 = RBBS curretnly reserving users 21480 MID$(RR$,68,7)=STR$(IFMSG) '68-74 = first rec. of msgs file 21490 MID$(RR$,75,7)=STR$(INMSG) '75-81 = next avail. msgs record 21500 MID$(RR$,82,7)=STR$(ILMSG) '82-88 = last rec. of msgs file 21510 MID$(RR$,89,1)=SPACE$(1) ' 89 = RBBS curretnly reserving msgs 21520 PUT 2,1 21530 CLOSE 2 21540 RETURN 21550 CURPAGE=7 21560 GOSUB 22760 21570 GOSUB 24800 21580 LOCATE 3,9:PRINT"121. Maximum number of concurrent RBBS-PC's -------"STR$(MAXRBBS) 21590 IF MAXRBBS=1 THEN MTYPE$="single RBBS-PC copy " ELSE MTYPE$="concurrent RBBS-PC's":GOSUB 21900:IF SHRD<0 OR SHRD>4 THEN GOTO 21810 21600 LOCATE 4,9:PRINT"122. Environment running "+MTYPE$+" ------ "+ENVIR$ 21610 LOCATE 5,9:PRINT"123. RBBS-PC 'recycle' method when users log off --- "+RECYCLE$ 21615 IF MSGMAX!<((5*MESSAGE.MAX)+1+MAXRBBS) THEN MSGMAX!=(5*MESSAGE.MAX)+1+MAXRBBS 21620 LOCATE 6,9:PRINT"124. Max. # users allowed in "+USERS$+" file ";STRING$(17-LEN(USERS$),"-");STR$(USERMAX) 21630 LOCATE 7,9:PRINT"125. Max. # records in "+MESSAGES$+" file ";STRING$(23-LEN(MESSAGES$),"-");STR$(MSGMAX!) 21635 LOCATE 8,9:PRINT"126. Maximum number of messages allowed ------------"STR$(MESSAGE.MAX) 21636 LOCATE 9,9:PRINT"127. Conference File Maintenance." 21640 GOSUB 24890 21650 GOSUB 22160 21660 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,16910,23000,21680 21670 GOTO 21650 21680 GOSUB 50340 21690 IF HJ$="121" THEN GOTO 21750 21700 IF HJ$="122" THEN GOTO 21810 21710 IF HJ$="123" THEN GOTO 21950 21720 IF HJ$="125" THEN GOSUB 22040:GOTO 21570 21730 IF HJ$="124" THEN GOSUB 22100:GOTO 21570 21735 IF HJ$="126" THEN GOTO 13890 21736 IF HJ$="127" THEN GOTO 25040 21740 GOTO 21640 21750 GOSUB 50340:LOCATE 24,5:PRINT"Maximum number of conurrent RBBS-PC's? (a value between 1 and 9)"; 21760 LINE INPUT;HJ$ 21770 B1=VAL(HJ$) 21780 IF B1<1 OR B1>9 THEN GOTO 21750 21790 MAXRBBS=B1 21800 GOTO 21550 21810 CLS:LOCATE 3,5:PRINT"RBBS-PC is supported in the following:" 21820 LOCATE 5,20:PRINT"Environment" 21825 LOCATE 7,10:PRINT"0. Single RBBS-PC in an IBM DOS environment" 21830 LOCATE 9,10:PRINT"1. MultiLink (multi-tasking under single DOS)" 21840 LOCATE 11,10:PRINT"2. Omninet (CORVUS)" 21850 LOCATE 13,10:PRINT"3. PC-NET (Orchid)" 21860 LOCATE 15,10:PRINT"4. Top-View (IBM's multi-tasking for DOS 3.1) -- not yet supported" 21870 GOSUB 50340:LOCATE 24,5:PRINT"Select environment (0 to 4, CR to end)"; 21880 LINE INPUT;X$:IF X$="" THEN GOTO 21550 ELSE SHRD=VAL(X$):GOSUB 21890:GOTO 21550 21890 IF SHRD<0 OR SHRD>4 GOTO 21870 21895 IF SHRD=0 THEN ENVIR$="IBM's DOS" 21900 IF SHRD=1 THEN ENVIR$="MultiLink" 21910 IF SHRD=2 THEN ENVIR$="Omninet" 21920 IF SHRD=3 THEN ENVIR$="PC-NET" 21930 IF SHRD=4 THEN ENVIR$="Top-View -- future" 21940 RETURN 21950 GOSUB 50340:LOCATE 24,5:PRINT"How RBBS-PC recycles when users logs off (SYSTEM or INTERNAL)? "; 21960 LINE INPUT;HJ$ 21970 IF LEN(HJ$)<1 OR LEN(HJ$)>8 THEN GOTO 21950 21980 GOSUB 60390 21990 IF HJ$="SYSTEM" THEN CYCLE=1:GOTO 22020 22000 IF HJ$="INTERNAL" THEN CYCLE=0:GOTO 22020 22010 GOTO 21950 22020 RECYCLE$=HJ$ 22030 GOTO 21550 22040 GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+MESSAGES$+" file (>"+STR$((5*MESSAGE.MAX)+1+MAXRBBS)+"):"; 22050 LINE INPUT;HJ$ 22060 B1!=VAL(HJ$) 22070 IF B1!<(5*MESSAGE.MAX) OR B1!>1E+07 THEN GOTO 22040 22080 MSGMAX!=B1! 22090 RETURN 22100 GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+USERS$+" file:"; 22110 LINE INPUT;HJ$ 22120 B1=VAL(HJ$) 22130 IF B1<1 OR B1>99999 THEN GOTO 22100 22140 USERMAX=B1 22150 RETURN 22160 I!=FRE(C$):Y$=INKEY$ 22170 IX=0 22180 IF LEN(Y$)<1 THEN GOTO 22160 22190 IF LEN(Y$)=2 THEN GOTO 22240 22200 IF ASC(Y$)=13 THEN IX=12:RETURN 22210 PRINT Y$; 22220 HJ$=HJ$+Y$ 22230 RETURN 22240 IX=ASC(RIGHT$(Y$,1)) 22250 Y$="" 22260 IF IX<59 OR IX>81 THEN RETURN 22270 IX=IX-58 22280 IF IX<9 THEN RETURN 22290 IF IX=15 THEN IX=10:RETURN 22300 IF IX=21 THEN IX=9:RETURN 22310 IF IX=23 THEN IX=11:RETURN 22320 IX=0 22330 RETURN 22340 LOCATE 22,15:PRINT SPC(64);:LOCATE 22,15:PRINT TIME$;" ";:COLOR 0,7:PRINT " Reading Data, Wait a sec !!! ";:COLOR FGR,BGR,BDR:RETURN 22350 GOSUB 50340 22360 LOCATE 24,1:PRINT SPC(79);:LOCATE 24,5:PRINT"Are you satisfied with all changes ? (Y/N) or <Q)uit "; 22370 GOSUB 22380:ON ANSW GOTO 12190,18740,60360,22350 22380 LINE INPUT;HJ$ 22390 IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 22470 22400 GOSUB 60390 22410 IF HJ$="NO" THEN ANSW=1:RETURN 22420 IF HJ$="N" THEN HJ$="NO":ANSW=1:RETURN 22430 IF HJ$="YES" THEN ANSW=2:RETURN 22440 IF HJ$="Y" THEN HJ$="YES":ANSW=2:RETURN 22450 IF HJ$="QUIT" THEN ANSW=3:RETURN 22460 IF HJ$="Q" THEN ANSW=3:RETURN 22470 ANSW=4:RETURN 22480 GOSUB 50340:LOCATE 24,5:PRINT"To which copy of RBBS-PC will these options apply (1 to 9)?"; 22490 LINE INPUT;HJ$ 22500 IF LEN(HJ$)<1 OR LEN(HJ$)>1 THEN GOTO 22480 22510 IF VAL(HJ$)<1 OR VAL(HJ$)>9 THEN GOTO 22480 22520 MID$(CONFIG$,5,1)=HJ$ 22530 RETURN 22540 GOSUB 50340:PRINT "Not implemented yet!"; 22550 RETURN 22560 OPEN "R",2,MESSAGES$,128 22570 FIELD 2,128 AS RR$ 22580 GET 2,1 22590 MID$(RR$,1,8)=STR$(ILMSGNUM) ' 1- 8 = number of last message on system 22599 MID$(RR$,52,38)=SPACE$(38) 'reset all counters before filling 22600 MID$(RR$,52,5)=STR$(IFUSER) '52-56 = first rec. of msgs file 22610 IF VAL(MID$(RR$,57,5))<INUSER AND VAL(MID$(RR$,57,5))>0 THEN INUSER=VAL(MID$(RR$,57,5)) 22620 IF INUSER<IFUSER THEN INUSER=IFUSER 22630 MID$(RR$,57,5)=STR$(INUSER) '57-61 = next avail. user record 22640 MID$(RR$,62,5)=STR$(ILUSER) '62-66 = last rec. of user file 22650 MID$(RR$,67,1)=SPACE$(1) ' 67 = RBBS curretnly reserving users 22660 IF MSW AND VAL (MID$(RR$,68,21))>0 THEN GOTO 22730 22670 MID$(RR$,68,7)=STR$(IFMSG) '68-74 = first rec. of msgs file 22680 IF VAL(MID$(RR$,75,7))<INMSG AND VAL(MID$(RR$,75,7))>0 THEN INMSG=VAL(MID$(RR$,75,7)) 22690 IF INMSG<IFMSG THEN INMSG=IFMSG 22700 MID$(RR$,75,7)=STR$(INMSG) '75-81 = next avail. msgs record 22710 MID$(RR$,82,7)=STR$(ILMSG) '82-88 = last rec. of msgs file 22720 MID$(RR$,89,1)=SPACE$(1) ' 89 = RBBS curretnly reserving msgs 22730 PUT 2,1 22740 CLOSE 2 22750 RETURN 22760 NAME MESSAGES$ AS MESSAGES$ 22770 OPEN "R",2,MESSAGES$,128 22780 FIELD 2,128 AS RR$ 22790 GET 2,1 22795 NAM$=SPACE$(31) 22800 IF NAM$<>MID$(RR$,21,31)THEN 22920 22810 ILMSGNUM=VAL(MID$(RR$,1,8)) ' 1- 8 = number of last message on system 22820 IFUSER=VAL(MID$(RR$,52,5)) '52-56 = first rec. of user file 22830 INUSER=VAL(MID$(RR$,57,5)) '57-61 = next avail. user record 22840 ILUSER=VAL(MID$(RR$,62,5)) '62-66 = last rec. of user file 22850 IFMSG=VAL(MID$(RR$,68,7)) '68-74 = first rec. of msgs file 22860 INMSG=VAL(MID$(RR$,75,7)) '75-81 = next avail. msgs record 22870 ILMSG=VAL(MID$(RR$,82,7)) '82-88 = last rec. of msgs file 22880 CLOSE 2 22910 RETURN 22920 MSGLOG!=LOF(2)/128+1+MAXRBBS 22930 CLOSE 2 22940 NAME USERS$ AS USERS$ 22950 OPEN "R",2,USERS$,128 22960 FIELD 2,128 AS RR$ 22970 USERLOF=LOF(2)/128 22980 CLOSE 2 22990 RETURN 23000 CURPAGE=8 23010 GOSUB 24800 23020 LOCATE 3,9:PRINT"141. Pack "+MESSAGES$+" file." 23030 LOCATE 4,9:PRINT"142. Pack "+USERS$+" file." 23040 LOCATE 5,9:PRINT"143. Print "+MESSAGES$+" 'header' records." 23050 LOCATE 6,9:PRINT"144. Renumber messages." 23060 A$="Enter number of utility function, END to terminate, PgUp/PgDn to scroll.":GOSUB 24900 23070 GOSUB 22160 23080 IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,21550,12190,23100 23090 GOTO 23070 23100 GOSUB 50340 23110 IF HJ$="141" THEN GOTO 23160 23120 IF HJ$="142" THEN GOTO 24110 23130 IF HJ$="143" THEN GOTO 23630 23140 IF HJ$="144" THEN GOTO 23740 23150 GOTO 23060 23160 GOSUB 22760 23170 OPEN "R",1,MESSAGES$ 23180 FIELD 1,128 AS R$ 23190 A$=MESSAGES$:GOSUB 50095:OPEN "R",2,A$,128 23200 FIELD 2,128 AS RR$ 23210 FOR J! = 1 TO IFMSG-1 23220 GET 1 23230 LSET RR$=R$ ' write out first record and then 23240 PUT 2 ' write out existing "door" records 23250 NEXT 23260 FOR J! = IFMSG TO INMSG-1 23270 GET 1,J! 23280 IF INSTR(R$,CHR$(225)) THEN PRINT"Msg #"+LEFT$(R$,5)+" copied...":GOTO 23300 23290 IF INSTR(R$,CHR$(226)) THEN GOSUB 23600:GOTO 23270 23300 LSET RR$=R$ 23310 PUT 2 ' write out existing message records 23320 NEXT 23330 INMSG=LOC(2) ' point to next available message record 23340 IF LOC(2)=>ILMSG GOTO 23410 23350 INMSG=LOC(2)+1 ' point to next available message record 23360 FOR J!=INMSG TO ILMSG 23370 LSET RR$ = SPACE$(128) 23380 PUT 2,J! ' write out expansion message records 23390 GOSUB 25030 23400 NEXT 23410 ILMSG=LOC(2) ' point to last available message record 23420 GOSUB 21430 23520 CLOSE 1 23530 GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+MESSAGES$+" file? (YES or NO)?"; 23540 GOSUB 22380:ON ANSW GOTO 23550,23570,23530,23530 23550 A$=MESSAGES$:GOSUB 50096:NAME MESSAGES$ AS A$ 23560 GOTO 23580 23570 KILL MESSAGES$ 23580 A$=MESSAGES$:GOSUB 50095:NAME A$ AS MESSAGES$ 23590 GOTO 23000 23600 PRINT"Msg #"+LEFT$(R$,5)+" purged..." 23610 J!=LOC(1)+VAL(MID$(R$,118)) 23620 RETURN 23630 GOSUB 22760 23640 OPEN "R",1,MESSAGES$ 23650 FIELD 1,128 AS R$ 23660 J!=IFMSG 23670 FOR I=IFMSG TO INMSG-1 23680 GET 1,J! 23690 PRINT R$ 23700 GOSUB 23610 23710 IF VAL(MID$(R$,2,4))=>ILMSGNUM THEN GOTO 23730 23720 NEXT 23730 CLOSE 1:IWAIT!=FNTI!+5:GOSUB 60440:GOTO 23000 23740 GOSUB 22760 23750 GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with OLD message # (<"+STR$(ILMSGNUM+1)+")"; 23760 LINE INPUT;HJ$ 23770 IF HJ$="" THEN GOTO 23000 23780 B1=VAL(HJ$) 23790 IF B1<1 OR B1>ILMSGNUM THEN GOTO 23750 23800 RENUMST=B1 23810 GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with NEW message # "; 23820 LINE INPUT;HJ$ 23830 IF HJ$="" THEN GOTO 23000 23840 B1=VAL(HJ$) 23850 IF B1<1 OR B1>9999 THEN GOTO 23810 23860 NEWNUMST=B1 23870 OPEN "R",1,MESSAGES$ 23880 FIELD 1,128 AS R$ 23890 GOSUB 50340 23900 J!=IFMSG 23910 FOR I = IFMSG TO INMSG-1 23920 GET 1,J! 23930 IF INSTR(R$,CHR$(225)) OR INSTR(R$,CHR$(226)) THEN GOSUB 24010:GOSUB 23610 23940 NEXT 23950 CLOSE 1 23960 IF NEWNUMST>B1 THEN ILMSGNUM=NEWNUMST-1 23970 GOSUB 22560 23980 IWAIT!=FNTI!+5 23990 GOSUB 60440 24000 GOTO 23000 24010 LOCATE 24,15 24020 PRINT "Msg #"+MID$(R$,1,5); 24030 IF VAL(MID$(R$,2,4))<RENUMST THEN PRINT " read";:RETURN 24040 Y$=MID$(R$,1,1) 24045 MID$(R$,1,5)=SPACE$(5) 24050 MID$(R$,1,5)=SPACE$(5-LEN(STR$(NEWNUMST)))+STR$(NEWNUMST) 24060 MID$(R$,1,1)=Y$ 24070 PRINT " renumbered as Msg #"+MID$(R$,1,5) 24080 NEWNUMST=NEWNUMST+1 24090 PUT 1,J! 24100 RETURN 24110 GOSUB 22760 24119 OPEN "R",1,USERS$,128 24120 FIELD 1,31 AS O.N$,15 AS OG$,2 AS OH$,14 AS OI$,24 AS OJ$,19 AS OL$,14 AS OM$,3 AS OO$,2 AS OQ$,2 AS OS$,2 AS OT$ 24130 GOSUB 50350:A$=F$:GOSUB 50095:OPEN "R",2,A$,128 24140 FIELD 2,31 AS N$,15 AS PW$,2 AS SL$,14 AS OP$,24 AS CS$,19 AS MA$,14 AS TD$,3 AS LND$,2 AS UDL$,2 AS UUL$,2 AS ET$ 24150 NOW=VAL(LEFT$(DATE$,2)) 24160 Q=0 24180 A!=INUSER-1 24190 ILUSER.OLD=ILUSER 24200 FOR J = 1 TO A! 24210 GET 1 24220 IF ASC(O.N$)=0 THEN 24430 24230 OF=CVI(OH$) 24240 OU=VAL(LEFT$(OM$,2)) 24250 LQ=NOW-OU 24255 IF O.N$="NEWUSER" THEN 24430 24260 IF LQ<0 THEN LQ=LQ+12 24265 IF OF=>PACKSEC THEN 24290 24270 IF OF<=MINSEC THEN 24290 24280 IF LQ>LAPSE.MAX THEN 24430 24290 PRINT STR$(LOC(1))+": "+O.N$+" copied ...." 24300 LSET N$ = O.N$ 24310 LSET PW$ = OG$ 24320 LSET SL$ = OH$ 24330 LSET OP$ = OI$ 24340 LSET CS$ = OJ$ 24350 LSET MA$ = OL$ 24360 LSET TD$ = OM$ 24370 LSET LND$ = OO$ 24380 LSET UDL$ = OQ$ 24390 LSET UUL$ = OS$ 24400 LSET ET$ = OT$ 24410 PUT 2 24420 GOTO 24450 24430 Q=Q+1 24440 PRINT STR$(LOC(1))+": "+O.N$+" purged..." 24450 NEXT 24460 INUSER=LOC(2) ' point to next available user record 24470 IF INUSER=>ILUSER.OLD THEN GOTO 24640 24480 INUSER=INUSER+1 ' point to next available user record 24490 FOR J=INUSER TO ILUSER.OLD 24500 LSET N$ = SPACE$(31) 24510 LSET PW$ = SPACE$(15) 24520 LSET SL$ = SPACE$(2) 24530 LSET OP$ = SPACE$(14) 24540 LSET CS$ = SPACE$(24) 24550 LSET MA$ = SPACE$(19) 24560 LSET TD$ = SPACE$(14) 24570 LSET LND$ = SPACE$(3) 24580 LSET UDL$ = SPACE$(2) 24590 LSET UUL$ = SPACE$(2) 24600 LSET ET$ = SPACE$(2) 24610 PUT 2 24620 GOSUB 25020 24630 NEXT 24640 ILUSER=LOC(2) ' point to last available user record 24650 CLOSE 1,2 24660 OPEN "R",2,MESSAGES$,128 24670 FIELD 2,128 AS RR$ 24680 GET 2,1 24689 MID$(RR$,57,10)=SPACE$(10) 'reset all counters before filling 24690 MID$(RR$,57,5)=STR$(INUSER) '57-61 = next avail. user record 24700 MID$(RR$,62,5)=STR$(ILUSER) '62-66 = last rec. of user file 24710 PUT 2,1 24720 CLOSE 2 24730 GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+USERS$+" file? (YES or NO)?"; 24740 GOSUB 22380:ON ANSW GOTO 24750,24770,24730,24730 24750 A$=USERS$:GOSUB 50096:NAME USERS$ AS A$ 24760 GOTO 24780 24770 KILL USERS$ 24780 GOSUB 50350:A$=F$:GOSUB 50095:NAME A$ AS USERS$ 24790 GOTO 23000 24800 CLS 24810 I!=FRE(C$) 24820 COLOR 0,7,0 24830 LOCATE 1,15 24840 PRINT"RBBS-PC CPC12.3 Default Configuration "+VER$; 24850 COLOR FGR,BGR,BDR 24860 LOCATE 1,68 24870 PRINT"Page "+STR$(CURPAGE)+" of "+STR$(MAXPAGE) 24880 RETURN 24890 A$="Enter parameter number to change, END to update, PgUp/PgDn to scroll." 24900 LOCATE 24,1 24910 PRINT A$; 24920 PRINT STRING$((79-LEN(A$)),32); 24930 LOCATE 24,LEN(A$)+1 24940 COLOR FGR,BGR,BDR:HJ$="" 24950 I!=FRE(C$) 24960 RETURN 24970 CLS:LOCATE 12,1,1:PRINT "RBBS-PC configuration description file, "+CONFIG$+", now on default drive.":GOSUB 60380 24980 IF USW THEN GOTO 24990 ELSE LOCATE 14,1,1:PRINT USERS$+" file has been preformatted to"+STR$(USERMAX)+" records.":IF MSW=1 AND ICHANGE=1 THEN GOSUB 22770:OPEN "R",2,MESSAGES$,128:FIELD 2,128 AS RR$:GOSUB 21430 24990 IF MSW=1 THEN GOTO 25000 ELSE LOCATE 16,1,1:PRINT MESSAGES$+" file has been preformatted to"+STR$(MSGMAX!)+" records." 25000 IF USW OR MSW THEN GOSUB 22560 25010 GOTO 60340 25020 LOCATE 24,5:PRINT "Preformatting record"+STR$(LOC(2))+" of "+USERS$+" file.";:RETURN 25030 LOCATE 24,5:PRINT "Preformatting record"+STR$(LOC(2))+" of "+MESSAGES$+" file.";:RETURN 25040 GOSUB 50340 25050 LOCATE 24,5:PRINT "Enter the name of the conference (seven characters or less) "; 25060 LINE INPUT;HJ$ 25070 IF LEN(HJ$)<1 OR LEN(HJ$)>7 THEN GOTO 25040 25075 GOSUB 60390:CONFNAME$=HJ$ 25080 GOSUB 50340 25090 LOCATE 24,5:PRINT "Specify drive (A->"+M$+") containing this conference's files. "; 25100 LINE INPUT;HJ$ 25110 IF LEN(HJ$)<>1 THEN GOTO 25080 25112 GOSUB 60390 25114 IF HJ$<"A" OR HJ$>M$ THEN GOTO 25090 25120 CONFNAME$=HJ$+":"+CONFNAME$ 25140 CONF.MSG$=CONFNAME$+"M.DEF" 25160 CONFUSER$=CONFNAME$+"U.DEF" 25161 GOSUB 50300 25162 NAME MESSAGES$ AS MESSAGES$ 25163 GOSUB 22770 25164 USERMAX=ILUSER 25165 MSGMAX!=ILMSG 25166 MESSAGE.MAX=CINT((ILMSG-1-MAXRBBS)/5) 25170 GOTO 21550 50000 OPEN "R",2,USERS$ 50010 FIELD 2,128 AS U$ 50020 FOR J=1 TO USERMAX 50030 LSET U$ = SPACE$(128) 50040 PUT 2 50050 GOSUB 25020 50060 NEXT 50070 IFUSER=1:INUSER=1:ILUSER=LOC(2) 50080 CLOSE 2 50090 RETURN 50095 IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".BAK":RETURN ELSE A$=A$+".BAK":RETURN 50096 IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".OLD":RETURN ELSE A$=A$+".OLD":RETURN 50100 OPEN "R",2,MESSAGES$ 50110 FIELD 2,128 AS RR$ 50120 LSET RR$=" 1 "+SPACE$(118)+STR$(MAXRBBS) 50130 PUT 2,1 ' write out first record of new file 50140 FOR J!=2 TO MAXRBBS+1 50150 GOSUB 20800 50160 PUT 2 ' write out "door" records of new file 50170 GOSUB 25030 50180 NEXT 50190 IFMSG=LOC(2)+1 ' point to first message record 50200 INMSG=IFMSG ' point to next available message record 50210 IF MAXRBBS+1=MSGMAX! THEN GOTO 50270 50220 FOR J!=MAXRBBS+2 TO MSGMAX! 50230 LSET RR$ = SPACE$(128) 50240 PUT 2 ' write out messages records of new file 50250 GOSUB 25030 50260 NEXT 50270 ILMSG=LOC(2) ' point to last available message record 50280 GOSUB 21430 50290 RETURN 50300 ISWP=NOT ISWP:SWAP MESSAGES$,CONF.MSG$ 50320 SWAP CONFUSER$,USERS$ 50325 SWAP CMESSAGE.MAX,MESSAGE.MAX:SWAP CMSGMAX!,MSGMAX! 50330 RETURN 50340 I!=FRE(C$):LOCATE 24,1:PRINT STRING$(79,32);:RETURN 50350 F$=USERS$ 50360 IF INSTR(USERS$,".") THEN F$=MID$(USERS$,1,INSTR(USERS$,".")-1) 50370 RETURN 50380 ICHANGE=1 50410 IFUSER.NEW=IFUSER 50420 INUSER.NEW=INUSER 50430 ILUSER.NEW=ILUSER 50470 RETURN 50480 USERMAX=10 50490 NAME USERS$ AS USERS$ 50500 OPEN "R",1,USERS$ 50510 IF USERMAX<LOF(1)/128 THEN USERMAX=LOF(1)/128 50520 USERLOF=LOF(1)/128:CLOSE 1:GOTO 50470 50530 MSGMAX!=(5*MESSAGE.MAX)+1+MAXRBBS 50540 NAME MESSAGES$ AS MESSAGES$ 50550 OPEN "R",1,MESSAGES$ 50560 IF MSGMAX!<LOF(1)/128 THEN MSGMAX!=LOF(1)/128 50570 MSGLOF!=LOF(1)/128:CLOSE 1:GOTO 50470 60000 REM 60010 REM * HANDLE ERROR CONDITIONS * 60020 ' PRINT ERR,ERL 60030 IF ERR=53 AND ERL=11590 THEN LOCATE 24,5:PRINT SPC(74);:LOCATE 24,5:PRINT CONFIG$+" file not found. A new one will be created.";:IWAIT!=FNTI!+5:GOSUB 60440:RESUME 11870 60040 IF ERR=62 AND (ERL=11600 OR ERL=11620 OR ERL=11640) THEN PRINT CONFIG$+" from a version earlier than CPC12.3 on default drive.":PRINT "Please delete and rerun CONFIG.":RESUME 60340 60050 IF ERL=19180 AND ERR=53 THEN RESUME 19940 60060 IF ERL=19180 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+USERS$+". Check option 65";:IWAIT!=FNTI!+5:GOSUB 60440:RESUME 15340 60070 IF ERL=19180 AND ERR=58 THEN RESUME 19200 60080 IF ERL=19890 AND ERR=58 THEN KILL A$:RESUME 19890 60090 IF ERL=19920 AND ERR=58 THEN KILL A$:RESUME 19920 60100 IF ERL=20030 AND ERR=53 THEN RESUME 20810 60110 IF ERL=20030 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+MESSAGES$+". Check option 61";:IWAIT!=FNTI!+5:GOSUB 60440:CLOSE 1:RESUME 15340 60120 IF ERL=20030 AND ERR=58 THEN RESUME 20050 60130 IF ERL=20360 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+MESSAGES$+".BAK"+". Check option 62";:IWAIT!=FNTI!+5:GOSUB 60440:CLOSE 1:RESUME 15340 60140 IF ERL=20750 AND ERR=58 THEN KILL A$:RESUME 20750 60150 IF ERL=20780 AND ERR=58 THEN KILL A$:RESUME 20780 60160 IF ERL=21030 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+A$+" Check option 62";:IWAIT!=FNTI!+5:GOSUB 60440:CLOSE 1:RESUME 15340 60170 IF ERL=22120 AND ERR=6 THEN RESUME 22100 60180 IF ERL=22760 AND ERR=53 THEN MSGMAX!=(5*MESSAGE.MAX)+1+MAXRBBS:RESUME 22940 60190 IF ERL=22760 AND ERR=58 THEN RESUME 22770 60200 IF ERL=22760 AND ERR=71 THEN MSGMAX!=(5*MESSAGE.MAX)+1+MAXRBBS:RESUME 22940 60210 IF ERL=22760 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+MESSAGES$+". Check option 61";:IWAIT!=FNTI!+5:GOSUB 60440:CLOSE 2:RESUME 15340 60220 IF ERL=22940 AND ERR=53 THEN RESUME 22990 60230 IF ERL=22940 AND ERR=58 THEN RESUME 22950 60240 IF ERL=22940 AND ERR=71 THEN RESUME 22990 60250 IF ERL=22940 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+USERS$+". Check option 65"7:IWAIT!=FNTI!+5:GOSUB 60440:CLOSE 2:RESUME 15340 60260 IF ERL=23550 AND ERR=58 THEN KILL A$:RESUME 23550 60270 IF ERL=24750 AND ERR=58 THEN KILL A$:RESUME 24750 60275 IF ERL=25162 AND ERR=58 THEN RESUME 25163 60276 IF ERL=25162 AND ERR=53 THEN MESSAGE.MAX=CMESSAGE.MAX:MSGMAX!=CMSGMAX!:RESUME 25170 60277 IF ERL=25162 AND (ERR=64 OR ERR=76) THEN RESUME 25040 60278 IF ERL=50490 AND ERR=58 THEN RESUME 50500 60280 IF ERL=50540 AND ERR=58 THEN RESUME 50550 60282 IF ERL=50490 OR ERL=50540 THEN RESUME 50470 60285 IF ERR=61 THEN PRINT "ERROR - IBM DOS DISKETTE FULL ":RESUME 60340 60290 IF ERR=67 THEN PRINT "ERROR - IBM DOS DIRECTORY FULL":RESUME 60340 60300 IF ERR=70 THEN PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED":RESUME 60340 60310 IF ERR=71 THEN PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE":RESUME 60340 60320 IF ERR=72 THEN PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE":RESUME 60340 60330 PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$ 60340 IWAIT!=FNTI!+5 60350 GOSUB 60440 60360 SYSTEM 60370 PRINT "Unable to create preformatted "+USERS$+" file.":GOTO 60340 60380 FOR WQ=1 TO 3:SOUND 1000*WQ,1:NEXT:RETURN 60390 ' Convert Lower Case to Upper Case ------- 60400 FOR Z=1 TO LEN(HJ$) 60410 MID$(HJ$,Z,1)=CHR$(ASC(MID$(HJ$,Z,1))+32*(ASC(MID$(HJ$,Z,1))>96)) 60420 NEXT Z 60430 RETURN 60440 ' wait routine 60450 IF FNTI!<IWAIT! THEN GOTO 60450 60460 RETURN